我有两个具有相同行数的表(第二个表是通过处理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 |
我尝试了这些命令:
pd.concat([T1,T2])
pd.merge([T1,T2])
result=T1.join(T1)
使用concat和merge我只会得到第一个千元组合,其余部分用nan填充(我仔细检查两个是相同的大小),并且.join它没有组合它们,因为没有任何共同点。
有没有办法在pandas中组合这两个表?
由于
答案 0 :(得分:5)
默认索引reset_index()
之前需要concat
:
df = pd.concat([T1.reset_index(drop=True),T2.reset_index(drop=True)], axis=1)
答案 1 :(得分:0)
另一种方法是合并索引值:
df = T1.reset_index().merge(T2.reset_index(), left_index=True, right_index=True, how='left)
答案 2 :(得分:0)
我想补充一点,pd.concat只需提供轴作为列就可以完成您想要的事情。像这样:
pd.concat([T1,T2],axis=1)