pandas 如何在python中合并两个在相同列中包含相同键但不同值的DataFrame

js81xvg6  于 2022-12-16  发布在  Python
关注(0)|答案(1)|浏览(131)

我有一个包含所有ID的 Dataframe

df1 = pd.DataFrame({'id': ['A01', 'A02', 'A03', 'A04', 'A05', 'A06','A07'],
                        'Name': ['', '', '', '', 'MKI', 'OPU','']})

包含某些ID的第二个DataFrame中的名称不同

df2 = pd.DataFrame({'id': ['A01', 'A05', 'A06', 'A03'],
                    'Name': ['ABC', 'TUV', 'MNO', 'JKL']})

我想合并它们,其中包含一些名称的相同Id替换空名称并合并

合并时还必须考虑DF 2名称

合并输出DF:-

df3 = {'id': ['A01', 'A02', 'A03', 'A04', 'A05', 'A06','A07'],
       'Name': ['ABC','', 'JKL','', 'TUV', 'MNO','']}

注:-合并具有相同列和相同ID但名称不同的两个 Dataframe ,如果为空,则替换为其他 Dataframe 值,同时获取相同ID的两个值,然后替换为DF 2将DF 2视为MAIN,并且需要Df 1的所有数据

dz6r00yl

dz6r00yl1#

仅对df1['id']列使用左联接,并用空字符串替换缺失值:

df = df1[['id']].merge(df2, on='id', how='left').fillna({'Name':''})
print (df)
    id Name
0  A01  ABC
1  A02     
2  A03  JKL
3  A04     
4  A05  TUV
5  A06  MNO
6  A07

相关问题