使用to_csv导出数据集时报'str' object has no attribute 'columns'错误
报错原因与修复方案
核心错误原因
报错'str' object has no attribute 'columns'说明你调用to_csv()方法的对象df_concat不是Pandas的DataFrame类型,而是字符串类型,字符串对象自然不存在columns属性也没有to_csv方法。
你代码中的问题点
pd.read_csv的low_memory参数接收的是布尔类型值,你代码中写的是字符串"false",不符合参数要求。错误的参数类型会导致read_csv返回异常结果,最终使得pd.concat操作返回的不是合并后的DataFrame,而是字符串类型值。- 可额外排查两个CSV文件的路径是否正确,避免文件读取失败后变量被意外赋值为字符串。
修正后的可运行代码
import pandas as pd # 把low_memory参数修正为不带引号的布尔值False data = pd.read_csv('Documents/Pos/ETLSIM/Dados/ETLSIM.DORES_MG_2019_t.csv', low_memory=False) data2 = pd.read_csv('Documents/Pos/ETLSIM/ETLSIM.DORES_MG_2018_t.csv', low_memory=False) # 可选校验步骤:确认读取结果是DataFrame类型 print(type(data), type(data2)) df_concat = pd.concat([data, data2], sort=False) # 导出时加index=False可以避免生成多余的索引列 df_concat.to_csv('concatenado.csv', index=False)
验证步骤
- 运行代码时先查看
type(data)和type(data2)的打印结果,确认两个读取结果均为<class 'pandas.core.frame.DataFrame'>后再执行合并操作 - 如果仍有报错,可以先单独运行
print(data.head())和print(data2.head())验证文件内容读取是否正常
内容的提问来源于stack exchange,提问作者Gabriela Martins Duraes Branda
相关产品推荐
相关产品推荐

