熊猫数据框合并选择列

Posted

技术标签:

【中文标题】熊猫数据框合并选择列【英文标题】:Pandas data frame merge select columns 【发布时间】:2019-06-29 01:09:50 【问题描述】:

我想通过比较 df1 和 df2 中的“否”字段来仅从 df2(所有列)获取数据。

我的 3 行代码如下,为此我从 df1 和 df2 获取所有列,无法从 df1 修剪字段。如何实现?

我有 2 个如下所示的 pandas 数据框:

df1:
no,name,salary
1,abc,100
2,def,105
3,abc,110
4,def,115
5,abc,120

df2:
no,name,salary,dept,addr
1,abc,100,IT1,ADDR1
2,abc,101,IT2,ADDR2
3,abc,102,IT3,ADDR3
4,abc,103,IT4,ADDR4
5,abc,104,IT5,ADDR5
6,abc,105,IT6,ADDR6
7,abc,106,IT7,ADDR7
8,abc,107,IT8,ADDR8

df1 = pd.read_csv("D:\\data\\data1.csv")
df2 = pd.read_csv("D:\\data\\data2.csv")
resDF = pd.merge(df1, df2, on='no' , how='inner')

【问题讨论】:

这会有帮助吗? ***.com/questions/41815079/… 【参考方案1】:

我认为您只需要过滤no 列,然后onhow 参数不是必需的:

resDF = pd.merge(df1[['no']], df2)

或者使用boolean indexingisin 过滤:

resDF = df2[df2['no'].isin(df1['no'])]

【讨论】:

非常感谢。这对我帮助很大。 :-)

以上是关于熊猫数据框合并选择列的主要内容,如果未能解决你的问题,请参考以下文章

根据熊猫数据框中的最后一个值选择列

熊猫:返回具有特定非连续列选择的新数据框[重复]

按时间戳列过滤/选择熊猫数据帧的行

熊猫合并:合并同一列上的两个数据框,但保留不同的列

为排序的熊猫数据框中的每个 ID 选择特定列的第一个值

将多个 int 列/行合并为一个 numpy 数组(熊猫数据框)