Python 合并数据帧,保留所有项
如何合并两个不同的数据帧,在填充空格时保留每个数据帧中的所有行 DF1 DF2 预期产量Python 合并数据帧,保留所有项,python,python-3.x,pandas,merge,Python,Python 3.x,Pandas,Merge,如何合并两个不同的数据帧,在填充空格时保留每个数据帧中的所有行 DF1 DF2 预期产量 Name Addr Num Parent Parent_Num Parent_Addr Matt 123H 8 James 10 543F Adam 213H 9 James 10 543F James 321H 10 Mom
Name Addr Num Parent Parent_Num Parent_Addr
Matt 123H 8 James 10 543F
Adam 213H 9 James 10 543F
James 321H 10 Mom 12 654F
Andrew 512F 10 Dad None 665F
Faith 555A 7 None None 657F
None None None Ian 13 656F
None None None None None 1234
我试图合并并保留两个数据帧中的所有数据。任何帮助都将不胜感激。多谢各位 您可以使用
'outer'
合并保留所有行
请注意,默认情况下,
merge
将在所有公共列名上合并
df1.merge(df2, 'outer')
Name Addr Num Parent Parent_Addr Parent_Num
0 Matt 123H 8.0 James 543F 10
1 Adam 213H 9.0 James 543F 10
2 James 321H 10.0 Mom 654F 12
3 Andrew 512F 10.0 Dad 665F NaN
4 Faith 555A 7.0 None 657F NaN
5 None NaN NaN Ian 656F 13
6 None NaN NaN None 1234 None
您需要合并所有公共列并使用外部联接
pd.merge(df1, df2, on = ['Name', 'Parent', 'Parent_Addr'], how = 'outer')
Name Addr Num Parent Parent_Addr Parent_Num
0 Matt 123H 8 James 543F 10
1 Adam 213H 9 James 543F 10
2 James 321H 10 Mom 654F 12
3 Andrew 512F 10 Dad 665F NaN
4 Faith 555A 7 None 657F NaN
5 None NaN NaN Ian 656F 13
6 None NaN NaN None 1234 None
列表中的列是否应该是两个数据帧之间相同的所有列?我看到您只指定了三列,而且我对合并是新手。
df1.merge(df2, 'outer')
Name Addr Num Parent Parent_Addr Parent_Num
0 Matt 123H 8.0 James 543F 10
1 Adam 213H 9.0 James 543F 10
2 James 321H 10.0 Mom 654F 12
3 Andrew 512F 10.0 Dad 665F NaN
4 Faith 555A 7.0 None 657F NaN
5 None NaN NaN Ian 656F 13
6 None NaN NaN None 1234 None
pd.merge(df1, df2, on = ['Name', 'Parent', 'Parent_Addr'], how = 'outer')
Name Addr Num Parent Parent_Addr Parent_Num
0 Matt 123H 8 James 543F 10
1 Adam 213H 9 James 543F 10
2 James 321H 10 Mom 654F 12
3 Andrew 512F 10 Dad 665F NaN
4 Faith 555A 7 None 657F NaN
5 None NaN NaN Ian 656F 13
6 None NaN NaN None 1234 None