Pandas根据第二个df中的值将列添加到df

时间:2016-08-11 16:23:33

标签: python pandas

我有两个独立的数据框df1df2,两个数据框都包含一个id列,用于链接它们之间的行。 df2有一个group列,df1不包含该列。我想要做的是浏览id中的每个df1并查看它是否在df2中,然后是否取group列值并放入它位于df1下同名的新列下。编写一个循环的函数是最简单的还是我可以在这里使用的pandas技巧?

2 个答案:

答案 0 :(得分:3)

df1 = pd.DataFrame([[1, 'a'],
                    [2, 'b'],
                    [3, 'c']], columns=['id', 'attr'])
df2 = pd.DataFrame([[2, 'd'],
                    [3, 'e'],
                    [4, 'f']], columns=['id', 'group'])

df1.merge(df2, how='left')

enter image description here

答案 1 :(得分:2)

您可以将两个数据框合并为一个,方法是在id列上加入它们,然后只保留您需要的列:

df1 = merge(df1, df2, how='left', on='id')
df1.drop('unwanted_column',1)