熊猫合并/加入

时间:2019-09-13 15:08:21

标签: python pandas dataframe

我有一个名为Bob的数据帧,其列= [A,B],而A仅具有唯一值,例如序列ID。形状为(100,2)

我还有一个名为Anna的数据框,其列为[C,D,E,F],其中C与bob中的A具有相同的值,但有重复项。 D列是类别(电话/笔记本电脑/ ipad),由C中的序列号定义。Anna的形状为(500,4)。

安娜中的行示例:

A B C D
K103 phone 12 17
K103 phone 14 23
G221 laptop 25 6

我想通过在anna [C]中搜索A的值来创建一个具有A,B,D列的新数据框。最终数据框的形状应为(100,3)

我发现使用pd.merge会遇到困难(我尝试过左/内/右联接),因为它会在新数据框中创建相同值的2行,即K103在新数据框中显示2x。 / p>

1 个答案:

答案 0 :(得分:1)

告诉我这是否可行,我在输入时会想到这个,所以我实际上无法检查。

   df = Bob.merge(Anna[['C','D'].drop_duplicates(keep='last'),how='left',left_on='A',right_on='C']

让我知道它是否不起作用,我将创建一个样本数据集并使用正确的代码对其进行编辑。