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

Ste*_*eve 0 python dataframe pandas

我在使用 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
Run Code Online (Sandbox Code Playgroud)

第二个类似于:

   gender  age 
0  M      25
2  M      27
3  M      27
4  F      36
Run Code Online (Sandbox Code Playgroud)

对于每个整数行索引,在第二个数据框中都有一个相应的条目。我想将它们连接到行索引相等的结果数据框中,例如 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
Run Code Online (Sandbox Code Playgroud)

如果可能,我想在加入时保留列顺序。

编辑:

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

 pd.merge(df1, df2, on='?????', how='inner')
Run Code Online (Sandbox Code Playgroud)

EdC*_*ica 5

使用pd.concat和 passaxis=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
Run Code Online (Sandbox Code Playgroud)

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

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