合并保留所有项目pandas的数据帧

joh*_*nyb 5 python merge python-3.x pandas

如何合并两个不同的数据帧,在填充空白时保留每个数据帧的所有行?

DF1

Name     Addr      Num     Parent   Parent_Addr
Matt     123H      8       James    543F
Adam     213H      9       James    543F
James    321H      10      Mom      654F
Andrew   512F      10      Dad      665F
Faith    555A      7       None     657F
Run Code Online (Sandbox Code Playgroud)

DF2

Name     Parent    Parent_Num  Parent_Addr
Matt     James     10          543F
Adam     James     10          543F
James    Mom       12          654F
None     Ian       13          656F
None     None      None        1234
Run Code Online (Sandbox Code Playgroud)

预期产出

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
Run Code Online (Sandbox Code Playgroud)

我试图合并并保留两个数据帧的所有数据.任何帮助将不胜感激.谢谢.

Vai*_*ali 6

您需要合并所有公共列并使用外部联接

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
Run Code Online (Sandbox Code Playgroud)