使用pandas读取CSV指定列写入新文件出现空值的问题咨询
问题原因
你读取得到的data对象的列名是整数类型的0和43,当你使用pd.DataFrame(data, columns=['col1','col2'])创建新DataFrame时,pandas会尝试从原data中匹配名为col1和col2的列,匹配不到就会生成全空的新列,所以最终导出的csv只有表头没有有效数据。
修复代码
不需要额外创建新的DataFrame,直接修改原data的列名后导出即可:
file1_csv = 'fileX.csv' data = pd.read_csv(file1_csv, header=None, usecols=[0,43]) # 直接重命名列 data.columns = ['col1', 'col2'] # 导出时关闭索引即可 data.to_csv('finalFile.csv', index=False)
如果确实需要创建新DataFrame实现,也可以用以下写法:
# 传入原data的数值内容,再指定列名 final = pd.DataFrame(data.values, columns=['col1','col2']) final.to_csv('finalFile.csv', index=False)
内容的提问来源于stack exchange,提问作者gesgallar
相关产品推荐
相关产品推荐

