为了账号安全,请及时绑定邮箱和手机立即绑定

使用 pd.merge() 合并两个以上的数据帧

使用 pd.merge() 合并两个以上的数据帧

开心每一天1111 2023-08-22 16:06:36
我尝试根据特定列(“文件名”)使用 pd.merge() 合并 4 个 csv 文件。我读到合并仅适用于两个数据帧,而是尝试按连续步骤合并前两个数据帧,然后是第三个数据帧,然后是第四个数据帧。这最终成功了,代码如下:combine = pd.merge(file1, file2, on='filename', how='inner')combine1 = pd.merge(combine, file3, on='filename', how='inner')combine2 = pd.merge(combine1, file4, on='filename', how='inner')产生以下结果:filename,  count_x,  count_y,  count_x,  count_yM116_13331848_13109013422677.jpg,  21,  11,  18,  16M116_13331848_13109013387678.jpg,  21,  13,  13,  18M116_13331848_13109013329679.jpg,  19,  15,  16,  15M116_13331848_13109013424677.jpg,  18,  13,  16,  15M116_13331848_13109013385678.jpg,  17,  12,  15,  13正如您所看到的,该过程在列上生成了令人困惑的标题。因此,我尝试使用 suffixes 参数来控制这些标头。但是,这只适用于第一个 pd.merge() 命令,不适用于第二个/第三个命令。这是我的完整脚本:如何将我自己的标题归因于组合 df 中的每一列?谢谢你,R
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

也许您可以suffixes在合并中使用参数来控制列名称。来自pandas 合并文档:


将 DataFrame df1 和 df2 与附加到任何重叠列的指定左后缀和右后缀合并。


在上面,类似:


combine = pd.merge(file1, file2, on='filename', how='inner', suffixes=('_file1', '_file2'))

其他方面也类似merge。这样你就可以在合并时知道计数来自哪里。


例子:


# Creating Dataframes

df1 = pd.DataFrame({'col1': ['foo', 'bar', 'baz'], 'count': [1, 2, 3]})

df2 = pd.DataFrame({'col1': ['foo', 'bar', 'baz'], 'count': [5, 6, 7]})

df1:


    col1    count

0   foo      1

1   bar      2

2   baz      3

df2:


    col1    count

0   foo      5

1   bar      6

2   baz      7

合并


pd.merge(df1, df2, on='col1', suffixes=('_df1', '_df2'))

结果:


    col1    count_df1   count_df2

0   foo        1         5

1   bar        2         6

2   baz        3         7

更新

鉴于您有四个数据框,也许您可以尝试:


# Combine two of them

combine1 = pd.merge(file1, file2, on='filename', how='inner', suffixes=('_file1', '_file2'))


# Combine other two

combine2 = pd.merge(file3, file4, on='filename', how='inner', suffixes=('_file3', '_file4'))


# Now combine the combined dataframes

combine = pd.merge(combine1, combine2, on='filename', how='inner')


查看完整回答
反对 回复 2023-08-22
  • 1 回答
  • 0 关注
  • 1529 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信