将两个数据帧附加在一起(Pandas,Python3)

时间:2014-09-25 19:46:34

标签: python-3.x pandas

我正在尝试将两个不同的数据框追加/加入(?),这些数据框不会共享任何重叠数据。

DF1看起来像

  Teams        Points
  Red            2
  Green          1
  Orange         3
  Yellow         4
  ....    
  Brown          6

和DF2看起来像

  Area         Miles
   2            3
   1            2
  ....
   7            12

我正在尝试使用

将这些附加在一起
 bigdata = df1.append(df2,ignore_index = True).reset_index()

但我得到了这个

  Teams        Points
  Red            2
  Green          1
  Orange         3
  Yellow         4   
                    Area         Miles
                     2            3
                     1            2

我如何得到这样的东西?

 Teams          Points      Area     Miles
  Red            2           2         3
  Green          1           1         2
  Orange         3
  Yellow         4
编辑:关于Edchum的答案,我尝试过合并和加入,但每个都创建了一些奇怪的表格。而不是我正在寻找的(如上所列)它将返回这样的东西:

 Teams          Points      Area     Miles
  Red            2           2         3
  Green          1           
  Orange         3           1         2
  Yellow         4

1 个答案:

答案 0 :(得分:1)

使用concat并传递参数axis=1

In [4]:

pd.concat([df1,df2], axis=1)
Out[4]:
    Teams  Points  Area  Miles
0     Red       2     2      3
1   Green       1     1      2
2  Orange       3   NaN    NaN
3  Yellow       4   NaN    NaN

join也有效:

In [8]:

df1.join(df2)
Out[8]:
    Teams  Points  Area  Miles
0     Red       2     2      3
1   Green       1     1      2
2  Orange       3   NaN    NaN
3  Yellow       4   NaN    NaN

merge一样:

In [11]:

df1.merge(df2,left_index=True, right_index=True, how='left')
Out[11]:
    Teams  Points  Area  Miles
0     Red       2     2      3
1   Green       1     1      2
2  Orange       3   NaN    NaN
3  Yellow       4   NaN    NaN

修改 在索引不对齐的情况下,例如你的第一个df具有索引[0,1,2,3]而你的第二个df具有索引[0,2],这将意味着上述操作将自然地与第一个df' s索引导致索引行NaN的{​​{1}}行。要解决此问题,您可以通过调用1重新索引第二个df,或直接分配,如下所示:reset_index()