pd.concat纵向堆叠DataFrame未合并同名列问题及解决方法
问题:Pandas纵向堆叠DataFrame出现重复列
我对此无法正常运行感到十分困惑,因为我已经这样操作过无数次了。我想要纵向堆叠两个DataFrame,但pandas却生成了重复列,并未将数据放入对应列中。
数据结构
- df1:包含3列,列名分别为
Date、Name、Value,数据类型依次为日期型、字符串型、数值型 - df2:外观上和df1结构一致,显示的列名也是
Date、Name、Value,数据类型匹配
执行代码
frames = [df1,df2] final = pd.concat(frames, ignore_index = True, axis = 0) final
异常结果
执行后得到了6列而非预期的3列,原有的3列均出现重复,两个DataFrame的数据分别落在各自的列中,没有合并到同一列。
我完全无法理解为何两个列名和数据类型看似一致的DataFrame无法直接纵向堆叠,恳请各位提供帮助。
问题解决更新
非常感谢@Naveed,问题根源是其中一个DataFrame的列名存在末尾空白字符,导致Pandas识别为不同列。
修复代码
df2.columns = [x.strip() for x in df2.columns] frames = [df1,df2] final = pd.concat(frames,ignore_index = True, axis = 0) final
内容的提问来源于stack exchange,提问作者Justin Benfit
相关产品推荐
相关产品推荐

