我想知道如何合并/合并两个具有类似列和一些缺失值的数据帧,同时仍然能够保留所有信息。我的数据帧类似于:
df1型
Item ID Order ID Name Location
21 1 John IL
22 2 John LA
24 2 Ron LA
25 3 Ron LA
29 5 John IL
df2型
Item ID Order ID Name Location Type
20 1 John IL cable
22 2 Ron LA cable
23 2 Ron LA Box
26 3 Ron LA cable
27 N/A N/A IL Box
29 5 John IL Box
我希望我的数据帧看起来像什么
Item ID Order ID Name Location Type
20 1 John IL Cable
21 4 John IL N/A
22 2 John/Ron LA Cable
23 2 Ron LA Box
24 2 Ron LA N/A
25 3 Ron LA N/A
26 3 Ron LA Cable
27 N/A N/A IL Box
28 N/A N/A N/A N/A
29 5 John IL Box
我试过做类似的事情
dataframes = [df1, df2]
merged = reduce(lambda left,right: pd.merge(left,right,on='Item ID', how='outer'), dataframes)
但是它的排序是错误的,或者它遗漏了一些信息,并且没有填写缺少的值(Item ID:28)。你知道吗
我在另一个帖子上发现了这个,做了一点小改动,它就完成了我想要的。我会张贴的人谁也需要它的定义版本。你知道吗
这可能有用
pd.concat([df1, df2]).sort_values('Item_ID').drop_duplicates(['Item_ID'], keep='last')
如果要填充缺少的值,另一种方法是使用^{} 和^{} :
相关问题 更多 >
编程相关推荐