如何使用Pandas合并3个DataFrame?保留全部列实现堆叠
解决多列数DataFrame的完整堆叠问题
你用的pd.merge_ordered是做有序键合并的,本质是按共同列做类似SQL的连接操作,不是把数据行堆叠在一起——这就是你丢失列的原因:它只会保留参与合并的共同列,非共同列会被过滤。
要把三个DataFrame完整堆叠(行合并)、保留所有列,应该用pd.concat()方法,它会沿着行轴把数据拼在一起,列不匹配的位置自动填充NaN:
import pandas as pd # 直接堆叠三个DataFrame,重置行索引避免重复 all_lob = pd.concat([df1, df2, df3], ignore_index=True)
如果需要区分不同产品的数据,可以给每个DataFrame先加一个标识列,再合并:
# 给每个DataFrame添加产品类型标识 df1['产品类型'] = '产品1' df2['产品类型'] = '产品2' df3['产品类型'] = '产品3' # 堆叠并重置索引 all_lob = pd.concat([df1, df2, df3], ignore_index=True)
内容的提问来源于stack exchange,提问作者JMJ
相关产品推荐
相关产品推荐

