提问人:HappyPy 提问时间:4/29/2016 最后编辑:cs95HappyPy 更新时间:3/12/2021 访问量:91458
如何在 pandas 中连接两个具有不同列名的数据框?-蟒
how to concat two data frames with different column names in pandas? - python
问:
df1 = pd.DataFrame({'a':[1,2,3],'x':[4,5,6],'y':[7,8,9]})
df2 = pd.DataFrame({'b':[10,11,12],'x':[13,14,15],'y':[16,17,18]})
我正在尝试使用中的键合并两个数据框。我想我应该用于此,但是我怎么能告诉熊猫将值放在 的列中。这是我试图实现的输出:df1
pd.merge
b
df2
a
df1
a x y
0 1 4 7
1 2 5 8
2 3 6 9
3 10 13 16
4 11 14 17
5 12 15 18
答:
55赞
EdChum
4/29/2016
#1
In [92]:
pd.concat([df1,df2.rename(columns={'b':'a'})], ignore_index=True)
Out[92]:
a x y
0 1 4 7
1 2 5 8
2 3 6 9
3 10 13 16
4 11 14 17
5 12 15 18
同样,您可以使用,但您需要重命名该列,如上所述:merge
In [103]:
df1.merge(df2.rename(columns={'b':'a'}),how='outer')
Out[103]:
a x y
0 1 4 7
1 2 5 8
2 3 6 9
3 10 13 16
4 11 14 17
5 12 15 18
评论
0赞
Sakeer
11/7/2023
好东西。你救了我的一天
26赞
scottlittle
12/16/2018
#2
使用 numpy 连接数据帧,因此不必重命名所有列(或显式忽略索引)。 也适用于任意数量的 DataFrame。np.concatenate
df = pd.DataFrame( np.concatenate( (df1.values, df2.values), axis=0 ) )
df.columns = [ 'a', 'x', 'y' ]
df
6赞
Mykola Zotko
3/12/2021
#3
您可以重命名列,然后使用函数或:append
concat
df2.columns = df1.columns
df1.append(df2, ignore_index=True)
# pd.concat([df1, df2], ignore_index=True)
您还可以将两个数据帧与 from 连接起来,并将生成的 ndarray 转换为 dataframe:vstack
numpy
pd.DataFrame(np.vstack([df1, df2]), columns=df1.columns)
评论