Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在浮点值的列上合并pandas DataFrame

在浮点值的列上合并pandas DataFrame
EN

Stack Overflow用户
提问于 2016-12-14 05:20:04
回答 2查看 12.2K关注 0票数 12

我有两个正在尝试合并的数据帧。

数据帧A:

代码语言:javascript
运行
AI代码解释
复制
    col1    col2    sub    grade
0   1       34.32   x       a 
1   1       34.32   x       b
2   1       34.33   y       c
3   2       10.14   z       b
4   3       33.01   z       a

数据帧B:

代码语言:javascript
运行
AI代码解释
复制
    col1    col2    group   ID
0   1       34.32   t       z 
1   1       54.32   s       w
2   1       34.33   r       z
3   2       10.14   q       z
4   3       33.01   q       e

我想在col1和col2上合并。我一直在使用以下语法进行pd.merge:

代码语言:javascript
运行
AI代码解释
复制
pd.merge(A, B, how = 'outer', on = ['col1', 'col2'])

然而,我认为我在连接col2的浮点值时遇到了问题,因为很多行都被删除了。有没有办法使用np.isclose来匹配col2的值?当我在任一数据帧中引用col2的特定值的索引时,该值的小数位数比数据帧中显示的要多得多。

我希望结果是:

代码语言:javascript
运行
AI代码解释
复制
    col1   col2   sub   grade   group    ID
0   1      34.32  x     a       t        z
1   1      34.32  x     b       s        w
2   1      54.32  s     w       NaN      NaN
3   1      34.33  y     c       r        z
4   2      10.14  z     b       q        z
5   3      33.01  z     a       q        e
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-14 06:55:40

您可以使用一些小技巧-多个浮点列通过一些常量,如1001000...,转换列为intmerge和最后除以常量:

代码语言:javascript
运行
AI代码解释
复制
N = 100
#thank you koalo for comment
A.col2 = np.round(A.col2*N).astype(int) 
B.col2 = np.round(B.col2*N).astype(int) 
df = pd.merge(A, B, how = 'outer', on = ['col1', 'col2'])
df.col2 = df.col2 / N
print (df)
   col1   col2  sub grade group ID
0     1  34.32    x     a     t  z
1     1  34.32    x     b     t  z
2     1  34.33    y     c     r  z
3     2  10.14    z     b     q  z
4     3  33.01    z     a     q  e
5     1  54.32  NaN   NaN     s  w
票数 11
EN

Stack Overflow用户

发布于 2018-07-17 17:54:19

我遇到了一个类似的问题,我需要识别具有数千个浮点列的匹配行,但没有标识符。这种情况很困难,因为值可能会因四舍五入而略有不同。

在本例中,我使用scipy.spatial.distance.cosine来获取行之间的余弦相似度。

代码语言:javascript
运行
AI代码解释
复制
from scipy import distance

threshold = 0.99999
similarity = 1 - spatial.distance.cosine(row1, row2)

if similarity >= threshold:
    # it's a match
else:
    # loop and check another row pair

如果您有重复或非常相似的行,这将不起作用,但当您有大量的浮点列和不太多的行时,它可以很好地工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41135371

复制
相关文章
Pandas DataFrame 数据合并、连接
merge 通过键拼接列 pandas提供了一个类似于关系数据库的连接(join)操作的方法merage,可以根据一个或多个键将不同DataFrame中的行连接起来 语法如下:
马哥Python
2019/06/27
3.6K0
合并Pandas的DataFrame方法汇总
Pandas是数据分析、机器学习等常用的工具,其中的DataFrame又是最常用的数据类型,对它的操作,不得不熟练。在《跟老齐学Python:数据分析》一书中,对DataFrame对象的各种常用操作都有详细介绍。本文根据书中介绍的内容,并参考其他文献,专门汇总了合并操作的各种方法。
老齐
2021/03/11
5.8K0
pandas dataframe的合并(append, merge, concat)
创建2个DataFrame:>>>df1=pd.DataFrame(np.ones((4,4))*1,columns=list('DCBA'),inde
Java架构师必看
2021/12/24
2.9K0
Pandas高级教程之:Dataframe的合并
Pandas提供了很多合并Series和Dataframe的强大的功能,通过这些功能可以方便的进行数据分析。本文将会详细讲解如何使用Pandas来合并Series和Dataframe。
程序那些事
2021/06/14
5.3K0
Pandas高级教程之:Dataframe的合并
Pandas提供了很多合并Series和Dataframe的强大的功能,通过这些功能可以方便的进行数据分析。本文将会详细讲解如何使用Pandas来合并Series和Dataframe。
子润先生
2021/06/18
2.3K0
dataframe填充缺失值_pandas填充空值
将其Nan全部填充为0,这时再打印的话会发现根本未填充,这是因为没有加上参数inplace参数。
全栈程序员站长
2022/09/22
2.9K0
在pandas中遍历DataFrame行
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
用户7886150
2020/12/26
3.5K0
pandas | DataFrame基础运算以及空值填充
今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame的基本运算。
TechFlow-承志
2020/07/21
4.1K0
python pandas 分组后 列上移
python pandas 分组后 列上移
Java架构师必看
2021/08/10
6250
pandas DataFrame的创建方法
在pandas里,DataFrame是最经常用的数据结构,这里总结生成和添加数据的方法: ①、把其他格式的数据整理到DataFrame中; ②在已有的DataFrame中插入N列或者N行。
py3study
2020/01/19
2.8K0
pandas DataFrame的创建方法
Pandas DataFrame笔记
1.属性方式,可以用于列,不能用于行 2.可以用整数切片选择行,但不能用单个整数索引(当索引不是整数时) 3.直接索引可以使用列、列集合,但不能用索引名索引行  用iloc取行,得到的series:
用户1075292
2018/01/23
1K0
Pandas DataFrame笔记
Pandas-3. DataFrame
Series组成的字典可以作为参数来创建DataFrame。其索引是所有Series的索引的并集。 例子:
悠扬前奏
2019/05/28
1.3K0
Pandas 数据分析 5 个实用小技巧
我攥了很久才汇总出这个小技巧系列手册,现暂命名为:《Pandas数据分析小技巧系列手册1.0》
数据森麟
2020/12/18
2.4K0
Pandas 数据分析 5 个实用小技巧
Pandas DataFrame 取整列
使用 df = pd.read_csv("csv_file.csv") 读出来的数据 就是 DataFrame 格式 ? <class 'pandas.core.frame.DataFrame'>
莫听穿林
2022/01/10
1.8K0
Pandas 如何创建 DataFrame
我们已经知道了什么是 Series,在使用 Series 之前,我们得知道如何创建 Series。
用户7886150
2020/12/26
1.7K0
在 Pandas DataFrame 中应用 IF 条件的5种方法
现在,我们创建一个仅包含Jon, Bill, Maria and Emma等文本内容的DataFrame,IF 条件如下:
披头
2022/08/22
9.7K0
在 Pandas DataFrame 中应用 IF 条件的5种方法
pandas和spark的dataframe互转
由于pandas的方式是单机版的,即toPandas()的方式是单机版的,所以参考breeze_lsw改成分布式版本:
机器学习和大数据挖掘
2019/07/01
3K0
(六)Python:Pandas中的DataFrame
        DataFrame与Series相比,除了可以每一个键对应许多值之外,还增加了列索引(columns)这一内容,具体内容如下所示:
小点点
2022/12/12
4.2K0
点击加载更多

相似问题

检测Pandas Dataframe中的浮点值

22

pandas dataframe:在列上执行计算

20

特定列上的DataFrame合并

25

在两列上合并Pandas Dataframes

13

在Dataframe Pandas的列上追加和删除重复的值

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档