Pandas合并两个具有相同行数的数据集

sta*_*dav 3 python pandas

我有两个具有相同行数的表(第二个表是通过处理T1内的文本从第一个表计算出来的).我把它们都存储为pandas dataframe.T2与T1没有共同列.这是一个例子,因为我的表很大:

T1:
| name  | street  | city   |
|-------|---------|--------|
| David | street1 | Prague |
| John  | street2 | Berlin |
| Joe   | street3 | London |

T2:
| computed1 | computed2 |
|-----------|-----------|
| 0.5       | 0.3       |
| 0.2       | 0.8       |
| 0.1       | 0.6       |

Merged:
| name  | street  | city   | computed1 | computed2 |
|-------|---------|--------|-----------|-----------|
| David | street1 | Prague | 0.5       | 0.3       |
| John  | street2 | Berlin | 0.2       | 0.8       |
| Joe   | street3 | London | 0.1       | 0.6       |
Run Code Online (Sandbox Code Playgroud)

我试过这些命令:

pd.concat([T1,T2])
pd.merge([T1,T2])
result=T1.join(T1)
Run Code Online (Sandbox Code Playgroud)

通过concat和merge,我将只得到第一个千元组合,休息时间用nan填充(我仔细检查两个是相同的大小),并且.join它没有组合它们,因为没有任何共同点.

有没有办法如何在熊猫中组合这两个表?

谢谢

jez*_*ael 8

您需要reset_index()之前concat的默认索引:

df = pd.concat([T1.reset_index(drop=True),T2.reset_index(drop=Tru??e)], axis=1)
Run Code Online (Sandbox Code Playgroud)


MKJ*_*MKJ 7

我想补充一点,pd.concat 只需提供轴作为列即可完成您想要的操作。像这样:

pd.concat([T1,T2],axis=1)
Run Code Online (Sandbox Code Playgroud)