2016-08-11 11 views
2

私は2つの別々のデータフレームdf1df2を持っていますが、両方のデータフレームにはid列が含まれています。 df2は、df1に含まれていないgroupの列を持ちます。私がしたいことは、をdf1に入れて、それがgroupの列の値をとるのであれば、それがdf2にあるかどうかをチェックして、同じ名前の新しい列の下にdf1に入れます。ループする関数を書くのが最も簡単なのでしょうか、ここで利用できるパンダのトリックはありますか?パンダは、2番目の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カラムにそれらを結合して一つに2つのデータフレームをマージして、必要な列だけを保つことができます。

df1 = merge(df1, df2, how='left', on='id') 
df1.drop('unwanted_column',1) 
関連する問題