我正在尝试在一个pandas数据框中设置一个新的列(实际上是两个列),这些数据来自另一个数据框。
我有以下两个数据框(这些是用于此目的的示例,原始数据框要大得多):
In [116]: df0Out[116]: A B C0 0 1 01 2 3 22 4 5 43 5 5 5In [118]: df1Out[118]: A D E0 2 7 21 6 5 52 4 3 23 0 1 04 5 4 65 0 1 0
我想得到一个新的数据框(或者添加到df0中,随便哪种都可以),如下所示:
df2: A B C D E0 0 1 0 1 01 2 3 2 7 22 4 5 4 3 23 5 5 5 4 6
如您所见,结果数据框中没有A=6的行,这行在df1中存在但不在df0中。另外,df1中A=0的行是重复的,但在结果df2中没有重复。
实际上,我在选择方法上遇到了麻烦。我可以这样做:
df1.loc[df1['A'].isin(df0['A'])]
但我不确定如何应用保留唯一数据的部分(请记住,df1可能包含重复数据),以及如何将这两个列添加到df2数据集中(或者添加到df0中)。我在这里搜索过,但不知道如何应用类似于groupby或map的方法。
有什么想法吗?
谢谢!
回答:
这是merge
的基本应用(文档):