我试图在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中,不管怎样),如下所示:
^{pr2}$如您所见,在得到的数据帧中,不存在具有A=6的行,该行存在于df1中,但不存在于df0中。另外,在df1中复制了A=0的行,但在结果df2中没有复制。在
实际上,我在选择方法上遇到了麻烦。我可以这样做:
df1.loc[df1['A'].isin(df0['A'])]
但是我不知道如何应用keep with unique data的部分(记住df1可以包含重复的数据)并将这两列添加到df2数据集(或者将它们添加到df0)。 我在这里搜索,不知道如何应用groupby,甚至地图之类的东西。在
有什么想法吗?在
谢谢!在
试试这个 new_data=df0.set_index('A').join(df1.set_index('A')) 你可能会得到索引错误,然后你必须使两个数据帧的索引数目相等
这是
merge
(docs)的基本应用程序:相关问题 更多 >
编程相关推荐