2016-08-11 142 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)