2016-08-11 100 views
2

我有两个独立的数据帧df1df2,两个数据帧都包含一个链接它们之间的行的id列。 df2有不包含的group列。我想要做的是通过df1中的每个id,并检查它是否在df2中,然后如果是取group列值并将其放在df1下的同名新列中。写一个循环函数还是有一个我可以在这里使用的熊猫技巧是最简单的方法?熊猫根据第二个df值添加列df

+1

你可能会寻找[合并](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html)。例如。 'pandas.merge(df1,df2,how ='outer',on = ['id'])' – FamousJameous

回答

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

2

您可以通过id列上加入他们合并两个dataframes中的一个,然后只保留您需要的列:

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