Python Pandas 仅合并某些列

新手上路,请多包涵

是否可以只合并某些列?我有一个包含 x、y、z 列的 DataFrame df1 和包含 x、a、b、c、d、e、f 等列的 df2。

我想合并 x 上的两个 DataFrame,但我只想合并列 df2.a、df2.b——而不是整个 DataFrame。

结果将是一个包含 x、y、z、a、b 的 DataFrame。

我可以合并然后删除不需要的列,但似乎有更好的方法。

原文由 BubbleGuppies 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 214
2 个回答

您可以合并子数据框(仅包含这些列):

 df2[list('xab')]  # df2 but only with columns x, a, and b

df1.merge(df2[list('xab')])

原文由 Andy Hayden 发布,翻译遵循 CC BY-SA 3.0 许可协议

你想使用两个括号,所以如果你正在做一个 VLOOKUP 类型的动作:

 df = pd.merge(df,df2[['Key_Column','Target_Column']],on='Key_Column', how='left')

这将为您提供原始 df 中的所有内容 + 在 df2 中添加您要加入的相应列。

原文由 Arthur D. Howland 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题