组合两个具有不等列数的 pandas 数据框(超集)

问题描述 投票:0回答:1

我有以下代码

import pandas as pd
df1 = pd.DataFrame({'a':[1,2,3],'y':[7,8,9]})
df2 = pd.DataFrame({'b':[10,11,12],'x':[13,14,15],'y':[16,17,18]})
pd.DataFrame(np.vstack([df1, df2]), columns=df1.columns)

上面的代码会产生错误。我希望最终的数据框将是

df1
df2
中的所有列。因此,由于列名称不同,将会缺少值。

有什么办法可以实现这个目标吗?

python-3.x pandas
1个回答
0
投票

IIUC用途:

df = pd.concat([df1.set_axis(range(len(df1.columns)), axis=1),
                df2.set_axis(range(len(df2.columns)), axis=1)])
print (df)
    0   1     2
0   1   7   NaN
1   2   8   NaN
2   3   9   NaN
0  10  13  16.0
1  11  14  17.0
2  12  15  18.0
© www.soinside.com 2019 - 2024. All rights reserved.