Pandas .concat(x,axis = 1)未对齐 Dataframe

zengzsys  于 2023-08-01  发布在  其他
关注(0)|答案(2)|浏览(126)

我试图使用df.concat()来合并2个数据框架。问题是他们没有排队。我也使用了axis = 1参数。

result df = pd.conat([df1,df2),axis =1)

字符串
我得到的结果是

Df1 : 
     a    b    c   
0         3   4
1         6   7

df2: 

      a   b    c    d   e 
0     8             9   10
1     11           12   13

result df: 
      a   b    c    d   e 
0         3    4
1         5    6
2     8              9   10
3     11            12   13


我想要的:

a   b    c    d   e 
0     8   3    4    9   10
1     11  6    7   12   13


谢谢你,谢谢

d8tt03nd

d8tt03nd1#

我不认为pd.concat是你想要的。您实际上需要将df1中的列b和c替换为df2。你可以试试join

df2 = df2.drop(columns=['b','c'])
df = df1.join(df2)

字符串

hmae6n7t

hmae6n7t2#

我可以复制你的问题并得出正确的解决方案。我的Pandas版本是1.5.3

import pandas as pd
### Create the dataframes
d0 = {'b': [3,6] , 'c': [4,7]}
d1 = {'a': [8,11],'d':[9,12], 'e':[10,13]}
df1 = pd.DataFrame.from_dict(d0)
df2 = pd.DataFrame.from_dict(d1)
### Combine
df = pd.concat([df1,df2],axis=1)[['a','b','c','d','e']]

字符串
输出:

相关问题