pythonのpandasを使用して2つのデータフレームを結合して、共通の列があれば更新しようとしています。
df1をベースとして、df2に共通のIDがあればcode列を更新し、df2にしかないdata列は追加して以下のような結果にしたいです。
列の順番は入れ替わっても問題はありません。
ID Info value code data
B 442 12 BB Y
C 998 12 CC X
D 45 12 DD Y
F 777 12 F
色々調べて試みましたがうまく機能しない為、ご教示いただきたく存じます。
import pandas as pd df1 = pd.DataFrame(data=[ ["B", 442,12,"B"], ["C", 998,12,"C"], ["D", 45,12,"D"], ["F", 777,12,"F"]] , columns=["ID", "Info","value","code"]) df2 = pd.DataFrame(data=[ ["A", "X","AA"], ["B", "Y","BB"], ["C", "X","CC"], ["D", "Y","DD"], ["E", "Y","EE"] ] ,columns=["ID", "data","code"]) #検証1 #df=pd.merge(df1, df2, on='ID', how='left') #重複列が_xとなってしまう #検証2 #df = df1[['ID', 'Info', 'value']].merge(df2[['ID', 'data', 'code']], on='ID', how='left')#IDがFの部分のdataがNaNとなってしまう print(df)
![guest](/img/icon/icnUserSample.jpg)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/05 07:53