Pandas列绑定(cbind)两个数据帧

时间:2015-10-12 18:39:54

标签: python pandas

我有一个带有ID信息的数据框df_a

    unique_id lacet_number 
15    5570613  TLA-0138365 
24    5025490  EMP-0138757 
36    4354431  DXN-0025343 

和另一个数据框df_b,我知道的行数与df_a中的行相对应:

     latitude  longitude 
0  -93.193560  31.217029  
1  -93.948082  35.360874  
2 -103.131508  37.787609  

我想要做的只是简单地解决这两个问题并获得:

    unique_id lacet_number      latitude  longitude 
0     5570613  TLA-0138365    -93.193560  31.217029  
1     5025490  EMP-0138757    -93.948082  35.360874  
2     4354431  DXN-0025343   -103.131508  37.787609  

我尝试过:

df_c = pd.concat([df_a, df_b], axis=1)

给了我一个外连接。

    unique_id lacet_number    latitude  longitude
0         NaN          NaN  -93.193560  31.217029
1         NaN          NaN  -93.948082  35.360874
2         NaN          NaN -103.131508  37.787609
15    5570613  TLA-0138365         NaN        NaN
24    5025490  EMP-0138757         NaN        NaN
36    4354431  DXN-0025343         NaN        NaN

问题是两个数据帧的索引不匹配。我阅读了pandas.concat的文档,看到有一个选项" ignore_index"。但这仅适用于连接轴,在我的情况下,列和它当然不适合我。所以我的问题是:有没有一种简单的方法来实现这个目标?

1 个答案:

答案 0 :(得分:59)

如果您确定索引行值是相同的,那么为了避免索引对齐顺序,然后只需调用reset_index(),这会将索引值重置为从0开始:< / p>

df_c = pd.concat([df_a.reset_index(drop=True), df_b], axis=1)