【发布时间】:2020-01-04 06:09:09
【问题描述】:
我想知道如何合并/合并具有相似列和一些缺失值的两个数据框,同时仍然能够保留所有信息。我的数据框看起来与此类似:
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)
但是它的排序是错误的或者它遗漏了一些信息以及没有填写缺失的值(项目ID:28)。
【问题讨论】:
-
这能回答你的问题吗? Pandas Merging 101
-
item_id28 是从哪里来的? -
我想知道是否有一种方法可以对 ID 进行排序,以便 python 填充缺失的值,如果没有,我们可以将 item_id 28 排除在外。
-
@APhillips 这是一个很棒的指南,我刚刚通读了一遍!但是,没有任何关于处理新创建列的后缀的信息。