构建大型Pandas DataFrame时列名与索引缺失问题排查
问题:合并多CSV文件时列名异常(特殊字符/隐藏换行符列)
我需要合并多个仅列名顺序不同的CSV文件来构建大型DataFrame,流程是循环读取文件转为DataFrame,完成基础清洗后合并,再用to_csv保存。但调用df.info()时发现45列中有2列缺失列名与索引:
- 含特殊字符的
co2-ausstoß列 - 带有隐藏换行符的
additional\r列(同时存在正常的additional列)
此外,这两个additional相关列的空值并非完全互补,无法直接合并。
现有实现代码
autohero_data_list = [] for entry in files: df = pd.read_csv(entry, lineterminator='\n', sep=";", header=0) df = df[df.listing_price.notnull()] df = df[df.highlights.notnull()] df.columns = df.columns.str.lower().str.replace(' ','_') df = df.reset_index(drop=True) autohero_data_list.append(df) df_clean_autohero = pd.concat(autohero_data_list) path = "./data/data_cleaned" df_clean_autohero.to_csv(os.path.join(path,r"autohero_data_clean"), encoding='utf-8', index=False) df_clean_autohero.info()
尝试的解决方法
最初判断是编码与引号问题,尝试Gremlin扩展无效;之后通过强制将列转换为ASCII编码的方式,目前DataFrame显示恢复正常:
for col in df: try: df[col] = df[col].astype(str) if df[col].dtype == str: df[col] = df[col].str.decode('ascii') except: print(traceback.format_exc()) pass
内容的提问来源于stack exchange,提问作者user24923167
相关产品推荐
相关产品推荐

