我想加入2个数据帧,以便结果将是关键列上两个数据集的交集。 通过这样做:
result = pd.merge(df1,df2,on='key', how='inner')
我会得到我需要的东西,但是有额外的df2列。我只想在结果中使用df1列。 (我不想在以后删除它们。)
有什么想法吗?
谢谢,
答案 0 :(得分:1)
这是一个通用解决方案,适用于一个和多个键(连接)列:
<强>设定:强>
In [28]: a = pd.DataFrame({'a':[1,2,3,4], 'b':[10,20,30,40], 'c':list('abcd')})
In [29]: b = pd.DataFrame({'a':[3,4,5,6], 'b':[30,41,51,61], 'c':list('efgh')})
In [30]: a
Out[30]:
a b c
0 1 10 a
1 2 20 b
2 3 30 c
3 4 40 d
In [31]: b
Out[31]:
a b c
0 3 30 e
1 4 41 f
2 5 51 g
3 6 61 h
多个加入密钥:
In [32]: join_cols = ['a','b']
In [33]: a.merge(b[join_cols], on=join_cols)
Out[33]:
a b c
0 3 30 c
单一加入密钥:
In [34]: join_cols = ['a']
In [35]: a.merge(b[join_cols], on=join_cols)
Out[35]:
a b c
0 3 30 c
1 4 40 d