对于熊猫中的数据框,如何在仅某些列相同的情况下追加数据框?

时间:2019-02-04 15:21:11

标签: python pandas dataframe

如果我有一个看起来像这样的数据框

             rootID   parentID    jobID    counter
          0    A         B          D         0
          1    E         F          G         0
          2    A         C          D         0
          3    E         B          F         0
          4    E         F          G         0

还有一个看起来像这样的数据框

             rootID   parentID    StepID
          0    A         B          1     
          1    A         F          2      
          2    A         C          3    
          3    E         B          4    
          4    E         F          5    

如何根据第二个数据帧共有的密钥“ rootID”和“ parentID”将第二个数据帧附加到第一个数据帧,以便获得

             rootID   parentID    jobID    counter   stepÌD
          0    A         B          D         0        Null
          1    E         F          G         0        Null
          2    A         C          D         0        Null
          3    E         B          F         0        Null
          4    E         F          G         0        Null
          5    A         B         Null      Null       1 
          6    A         F         Null      Null       2
          7    A         C         Null      Null       3
          8    E         B         Null      Null       4
          9    E         F         Null      Null       5    

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

尝试pd.concat,熊猫具有固有的数据对齐方式,因此在使用此功能和大多数其他功能时,熊猫将使行索引标签和列标题保持对齐:

pd.concat([df, df2], ignore_index=True, sort=False)

输出:

  rootID parentID jobID  counter  StepID
0      A        B     D      0.0     NaN
1      E        F     G      0.0     NaN
2      A        C     D      0.0     NaN
3      E        B     F      0.0     NaN
4      E        F     G      0.0     NaN
5      A        B   NaN      NaN     1.0
6      A        F   NaN      NaN     2.0
7      A        C   NaN      NaN     3.0
8      E        B   NaN      NaN     4.0
9      E        F   NaN      NaN     5.0

注意: :pandas不幸的副作用是将包含NaN的数值列转换为浮点数据类型。