我正在使用多列执行数据帧外部联接:
DF1型:
ColumnA ColumnB ColumnC ColumnD
1 2 3 4
1 2 3 4
DF2型:
ColumnE ColumnF ColumnG ColumnH
1 2 3 4
1 2 3 4
合并代码:
df= pd.merge(DF1, DF2, left_on=['ColumnA','ColumnB','ColumnC','ColumnD'], right_on=['ColumnE','ColumnF','ColumnG','ColumnH'], how='outer')
实际结果:
ColumnA ColumnB ColumnC ColumnD ColumnE ColumnF ColumnG ColumnH
1 2 3 4 1 2 3 4
1 2 3 4 1 2 3 4
1 2 3 4 1 2 3 4
1 2 3 4 1 2 3 4
预期结果(当两个数据集中的列组合完全匹配时,值应仅显示两次):
ColumnA ColumnB ColumnC ColumnD ColumnE ColumnF ColumnG ColumnH
1 2 3 4 1 2 3 4
1 2 3 4 1 2 3 4
有人能告诉我哪里出错了吗
所以我们需要
merge
和一个额外的键,由cumcount
创建在
df1
和df2
上都有相同的副本,因此合并的df
的行数是每个副本的两倍。简单的解决方案是通过drop_duplicates
和merge
保持一个数据帧的唯一性相关问题 更多 >
编程相关推荐