我正在尝试在pandas数据框中设置一个新的列(实际上是两个列),其中的数据来自其他数据框。
我有以下两个数据框(它们是为了这个目的而示例,原始数据框要大得多):
In [116]: df0
Out[116]:
A B C
0 0 1 0
1 2 3 2
2 4 5 4
3 5 5 5
In [118]: df1
Out[118]:
A D E
0 2 7 2
1 6 5 5
2 4 3 2
3 0 1 0
4 5 4 6
5 0 1 0
我希望有一个新的数据框(或添加到df0中,无论哪种方式),如下所示:
df2:
A B C D E
0 0 1 0 1 0
1 2 3 2 7 2
2 4 5 4 3 2
3 5 5 5 4 6
如您所见,在生成的数据框中没有A = 6的行,但在df1中存在而不在df0中。另外,A=0的行在df1中被复制了,但在结果df2中没有。
实际上,我在选择方法方面遇到了困难。我可以这样做:
df1.loc[df1['A'].isin(df0['A'])]
但是我不确定如何应用保留唯一数据的部分(请记住,df1可能包含重复的数据),并将这两列添加到df2数据集中(或将它们添加到df0中)。我在这里搜索了一下,但我不知道如何应用类似于groupby甚至map的东西。有什么想法吗?谢谢!
pd.merge(df0, df1, on=['A'])
。 - MaxU - stand with Ukraine