使用熊猫在两个数据框中连接不同的列(并追加相似的列)

阿莱霍

我的问题与“ Pandas合并” 密切相关-如何避免重复的列但又不完全相同。

我想串联在三个数据框中不同的列。数据框具有列ID,并且某些列相同:例如。

df1

id place name qty unit A 
1 NY    Tom   2  10   a
2 TK    Ron   3  15   a
3 Lon   Don   5  90   a
4 Hk    Sam   4  49   a

df2

id place name qty unit B 
1 NY    Tom   2  10   b
2 TK    Ron   3  15   b
3 Lon   Don   5  90   b
4 Hk    Sam   4  49   b

df3

id place name qty unit C D
1 NY    Tom   2  10   c d
2 TK    Ron   3  15   c d
3 Lon   Don   5  90   c d
4 Hk    Sam   4  49   c d

结果:

id place name qty unit A B C D
1 NY    Tom   2  10   a b c d
2 TK    Ron   3  15   a b c d
3 Lon   Don   5  90   a b c d
4 Hk    Sam   4  49   a b c d

列的位置,名称,数量和单位将始终是三个数据框的一部分,不同的列名称可能会有所不同(在我的示例中为A,B,C,D)。这三个数据帧具有相同的行数。

我努力了:

cols_to_use = df1.columns - df2.columns
dfNew = merge(df, df2[cols_to_use], left_index=True, right_index=True, how='outer')

问题是我得到的行比预期的多,并且在结果数据框中重命名了列(使用concat时)。

BEN_YO

reduce使用functools

from functools import reduce
reduce(lambda left,right: pd.merge(left,right), [df1,df2,df3])
Out[725]: 
   id place name  qty  unit  A  B  C  D
0   1    NY  Tom    2    10  a  b  c  d
1   2    TK  Ron    3    15  a  b  c  d
2   3   Lon  Don    5    90  a  b  c  d
3   4    Hk  Sam    4    49  a  b  c  d

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

比较不同数据框中的两个时间列,并查找/保持最相似的值(不相似)

在具有不同列的熊猫中添加两个数据框

使用相似的列合并2个数据框

支持熊猫中的两个数据框列

使用熊猫比较两个数据框的多列

如何合并熊猫数据框中名称相似的列?

从值不同的两个数据框中获取列

通过多个相似的列连接两个数据帧,同时在R中保持不重叠的数据

使用特定的列连接两个熊猫数据框

从两个数据框(熊猫)连接两个相同的列

在两个数据框中使相似列的顺序相同

连接来自两个不同表的两个列,其中两个列都有部分相似的数据

使用R中的条件按键列交叉连接两个数据框

熊猫连接两个数据框

连接熊猫数据框中的两列

连接熊猫数据框中的两列

连接两个数据框并添加标签列以区分大熊猫

熊猫合并具有不同日期和列的两个数据框

熊猫合并具有不同列的两个数据框

如何通过匹配熊猫中两个不同数据框中的列来更新一个数据框的列

如何在熊猫中追加两个数据框

用列熊猫分组的两个数据框的划分

熊猫:合并两个数据框列

如何检查两个数据框(熊猫)中多个列的列值?

根据熊猫中两列的组合比较两个数据框

熊猫数据框-匹配两个数据框中的两列以更改第三列的值

如何使用坐标在熊猫中连接两个数据框

将两个多索引数据帧与不同但相似的索引和列相乘

通过列值连接两个数据框