Pandas合并含NaN空DataFrame与非空DataFrame报错解决
解决方法
错误原因
你创建的空DataFrame列名是重复的NaN值,而pd.concat在对齐列时要求列索引必须是唯一的,重复的非唯一索引触发了InvalidIndexError。
正确实现方式
直接复用目标DataFrame(interm_df)的列名来创建空DataFrame,确保列索引一致且唯一:
import pandas as pd import numpy as np # 创建14行全为NaN的空DataFrame,列名与interm_df完全匹配 dfs_empty_rows = pd.DataFrame(np.nan, index=range(14), columns=interm_df.columns) # 合并两个DataFrame,空行在前,重置行索引 combined_df = pd.concat([dfs_empty_rows, interm_df], axis=0, ignore_index=True)
原代码失败原因
原代码中columns=[np.nan] * len(interm_df.columns)生成了重复的NaN列名,属于非唯一索引。pd.concat在合并时会尝试对齐列,而重复索引无法完成reindex操作,因此抛出错误。
内容的提问来源于stack exchange,提问作者Rahul Anand
相关产品推荐
相关产品推荐

