【问题标题】:How to merge two large pandas dataframes by mergining common columns and keeping the rest, without keys如何通过合并公共列并保留其余列来合并两个大熊猫数据框,无需键
【发布时间】:2020-10-13 09:02:25
【问题描述】:

首先,提前致谢。

我正在尝试加入两个大熊猫数据框:

1.两帧的行数相同。 2.有一些常见的列(也有相同的列数据框名称) 3.公共列的顺序并不总是相同(即“小时”列是第一个数据框中的第二个,但第二个数据框中的第一个)

我想要的是以这样的方式加入两个数据框:

  1. 常用列合并
  2. 我保留每个数据框中不同的所有列。

我在这里看到了一些与使用 pd.merge() 函数相关的答案,但在所有这些答案中,都必须提供列的键。我想避免这种情况,因为列数很大。我想必须有一种方法可以避免写入,例如 50 个列键。

希望我能正确解释自己,

非常感谢,祝你有美好的一天!! :)

【问题讨论】:

  • 这能回答你的问题吗? Pandas Merging 101
  • 嗨,我已经经历过,我认为它并不具体。也就是说,我认为这是一个非常有趣和有用的资源,所以我一定会保存它以供将来参考,非常感谢分享它! :)
  • 已接受的答案已在上述帖子中明确列出,我将其列为重复项,以便遇到此帖子的其他人将被引导到更全面的答案,该答案已被更广泛的熊猫专家接受社区:)
  • 你能告诉我具体在哪里吗?因为据我了解(根据提供的图像),合并选项适用于行。根据 pd.merge 文档,没有诸如 index=1 之类的参数。再次感谢,当然,一旦我看到它被重复,我就会列为重复:)
  • 在同一个帖子中搜索pd.concat([left, right], axis=1, sort=False, join='inner')。 :)

标签: python pandas dataframe


【解决方案1】:

很简单。使用“concat”并指定连接类型。在你的情况下,“内部”

语法:

pd.concat([df1, df2], axis=1, join='inner')
df1.merge(df2, left_on='ColumnA', right_on='ColumnB')

A列是左列,B列是右列

【讨论】:

  • 嗨,我以为它起作用了,抱歉。但是当我应用它时,它只是一个接一个地附加一个df,而不是组合公共列。
  • 使用 df.merge 选项。在评论中添加了新行
  • 但是这样我必须为每个公共列写键,不是吗?如果我有 50 个公共列,我应该写 50 个键吗?谢谢;)
猜你喜欢
  • 1970-01-01
  • 2018-12-10
  • 2022-12-05
  • 2019-09-27
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
  • 2021-03-11
  • 1970-01-01
相关资源
最近更新 更多