将数据框与一些列相等和一些列不同
Concatenate dataframe with some columns equals and some columns different
我正在尝试连接两个 Dataframes,但系统性地发生错误,我不知道如何更正它。
我在 Pandas 文档中看到了我想要执行的操作的示例:
但是,我正在尝试对我的两个数据帧执行相同的操作:
df1 :
df2 :
有些列相似,但有些不同。我使用 reset_index(drop=True)
来避免这个问题,即使每个数据帧的索引都不同。
我正在尝试这样做:pd.concat([df1, df2], ignore_index=True, sort=False)
但我遇到了这个错误:
有人可以告诉我如何解决这个错误吗?
提前感谢您的宝贵时间!
手动重置索引,转置数据帧,进行外部连接,然后将它们转回。
import pandas as pd
df1 = pd.DataFrame({'A': [1,2,3,4,5], 'B':[2,3,4,5,6], 'C':[-9,-2,-1,8,0]})
df2 = pd.DataFrame({'A': [4,5], 'B':[2,6], 'D':[9,0]})
df1.index = range(df1.shape[0])
df2.index = range(df1.shape[0], df1.shape[0]+df2.shape[0])
result = df1.T.join(df2.T, how='outer').T
result
A B C D
0 1.0 2.0 -9.0 NaN
1 2.0 3.0 -2.0 NaN
2 3.0 4.0 -1.0 NaN
3 4.0 5.0 8.0 NaN
4 5.0 6.0 0.0 NaN
5 4.0 2.0 NaN 9.0
6 5.0 6.0 NaN 0.0
我正在尝试连接两个 Dataframes,但系统性地发生错误,我不知道如何更正它。
我在 Pandas 文档中看到了我想要执行的操作的示例:
但是,我正在尝试对我的两个数据帧执行相同的操作:
df1 :
df2 :
有些列相似,但有些不同。我使用 reset_index(drop=True)
来避免这个问题,即使每个数据帧的索引都不同。
我正在尝试这样做:pd.concat([df1, df2], ignore_index=True, sort=False)
但我遇到了这个错误:
有人可以告诉我如何解决这个错误吗? 提前感谢您的宝贵时间!
手动重置索引,转置数据帧,进行外部连接,然后将它们转回。
import pandas as pd
df1 = pd.DataFrame({'A': [1,2,3,4,5], 'B':[2,3,4,5,6], 'C':[-9,-2,-1,8,0]})
df2 = pd.DataFrame({'A': [4,5], 'B':[2,6], 'D':[9,0]})
df1.index = range(df1.shape[0])
df2.index = range(df1.shape[0], df1.shape[0]+df2.shape[0])
result = df1.T.join(df2.T, how='outer').T
result
A B C D
0 1.0 2.0 -9.0 NaN
1 2.0 3.0 -2.0 NaN
2 3.0 4.0 -1.0 NaN
3 4.0 5.0 8.0 NaN
4 5.0 6.0 0.0 NaN
5 4.0 2.0 NaN 9.0
6 5.0 6.0 NaN 0.0