在Pandas中简单连接两个数据帧

时间:2015-03-30 14:11:54

标签: python pandas dataframe

我在使用Pandas的Python程序中有两个数据框。 我是熊猫的新手。

每个都有多个列和行 - 第一个类似于:

   calc_1  calc_2 calc_3
0  34.3   43.1  42.0
2  3.0    4.0   5.0
3  6.1    6.1   6.2
4  4.2    4.3   4.5

第二个类似于:

   gender  age 
0  M      25
2  M      27
3  M      27
4  F      36

对于每个整数行索引,第二个数据帧中都有对应的条目。我想将它们加入到行索引相等的结果数据框中,例如SQL中的内连接。

我似乎无法理解这一点。将结果追加到我应该拥有的行数的2倍。信息来自CSV。

   calc_1  calc_2 calc_3  gender age
0  34.3   43.1  42.0      M      25
2  3.0    4.0   5.0       M      27
3  6.1    6.1   6.2       M      27
4  4.2    4.3   4.5       F      36

我希望在加入时保留列顺序。

编辑:

我似乎无法使用合并,因为整数索引没有名称

 pd.merge(df1, df2, on='?????', how='inner')

1 个答案:

答案 0 :(得分:4)

使用pd.concat并传递axis=1以逐列连接:

In [37]:

pd.concat([df,df1], axis=1)
Out[37]:
   calc_1  calc_2  calc_3 gender  age
0    34.3    43.1    42.0      M   25
2     3.0     4.0     5.0      M   27
3     6.1     6.1     6.2      M   27
4     4.2     4.3     4.5      F   36

join

In [38]:

df.join(df1)
Out[38]:
   calc_1  calc_2  calc_3 gender  age
0    34.3    43.1    42.0      M   25
2     3.0     4.0     5.0      M   27
3     6.1     6.1     6.2      M   27
4     4.2     4.3     4.5      F   36

merge并设置left_index=Trueright_index=True

In [41]:

df.merge(df1, left_index=True, right_index=True)
Out[41]:
   calc_1  calc_2  calc_3 gender  age
0    34.3    43.1    42.0      M   25
2     3.0     4.0     5.0      M   27
3     6.1     6.1     6.2      M   27
4     4.2     4.3     4.5      F   36