Python Pandas如何只合并某些列?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (1150)

是否可能只合并一些列?我有一个DataFramedf 1,包含 列x、y、z和df 2,列x、a、b、c、d、e、f等。

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

结果是具有x,y,z,a,b的DataFrame。

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

提问于
用户回答回答于

你可以合并子DataFrame(仅与这些列合并):

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

df1.merge(df2[list('xab')])
用户回答回答于

你可以用.loc若要选择具有所有行的特定列,请按此操作。一个例子如下:

pandas.merge(dataframe1, dataframe2.iloc[:, [0:5]], how='left', on='key')

在本例中,你将合并dataframe 1和dataframe 2。你已经选择在“键”上做一个左外接。但是,对于dataframe 2你已经指定了.iloc它允许你以数字格式指定想要的行和列。使用:,你将选择所有行,但是[0:5]选择前5列。你可以用.loc若要按名称指定,但如果你处理的是长列名,则.iloc也许会更好。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励