我有以下代码
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
中的所有列。因此,由于列名称不同,将会缺少值。
有什么办法可以实现这个目标吗?
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