pandas - 将 dict 从 CSV 附加到 Dataframe 正在删除值
问题描述
我正在尝试使用 pandas 将一些值附加到 CSV 文件中。问题是当我读取 CSV 并追加时,之前在 CSV 中的行被更改为 NaN。
我阅读了文件并打印了每一步以了解发生了什么,但我不能。
import pandas as pd
try:
erro = pd.read_csv('C:\\TESTEPANDAS\\errot.csv', index_col=0,header=0)
except:
erro = pd.DataFrame({'id':[],'cnj':[],'erro':[]})
print(erro)
erro.to_csv('C:\\TESTEPANDAS\\errot.csv',sep=';',index=False)
for i in range(5):
erro = erro.append({'id':'id{}'.format(i),'cnj':'cnj{}'.format(i),'erro':'errotxt{}'.format(i)},ignore_index=True)
print(erro)
erro.to_csv('C:\\TESTEPANDAS\\errot.csv',sep=';',index=False)
当我尝试一次时,结果如下:
Empty DataFrame
Columns: [id, cnj, erro]
Index: []
id cnj erro
0 id0 cnj0 errotxt0
1 id1 cnj1 errotxt1
2 id2 cnj2 errotxt2
3 id3 cnj3 errotxt3
4 id4 cnj4 errotxt4
如果我再试一次:
Empty DataFrame
Columns: []
Index: [id0;cnj0;errotxt0, id1;cnj1;errotxt1, id2;cnj2;errotxt2, id3;cnj3;errotxt3, id4;cnj4;errotxt4]
cnj erro id
0 NaN NaN NaN
1 NaN NaN NaN
2 NaN NaN NaN
3 NaN NaN NaN
4 NaN NaN NaN
5 cnj0 errotxt0 id0
6 cnj1 errotxt1 id1
7 cnj2 errotxt2 id2
8 cnj3 errotxt3 id3
9 cnj4 errotxt4 id4
解决方案
写入和读取 csv 的参数不匹配。查看第二个输出的索引 - 读取 csv 失败,因为没有给出分隔符:
Index: [id0;cnj0;errotxt0, id1;cnj1;errotxt1...
读取命令应该是:
erro = pd.read_csv('C:\\TESTEPANDAS\\errot.csv', sep=";")
然后你会取回你在上一次迭代中保存的同一个对象。
推荐阅读
- c# - aspnetcore 从 1.0 升级到 2.1 后的 AWS Cognito 签名不匹配问题
- powershell - 如何从批处理文件自动运行 Exchange Powershell 命令
- ssis - 我需要使用 SSIS VB 脚本任务将扩展名为“.TXT”的文件夹中所有文件的扩展名更改为“.DAT”
- python-3.x - 使用 Flask-ReCaptcha 时出现 uWSGI 分段错误
- apache-kafka - 有没有办法确定 Kafka 主题中的消息来自哪里?
- .net - 如果我必须同时针对 Dot Net Core 3.0 和 .Net Framework 4.7.2,我应该在库中使用哪个 .Net 标准版本
- python - 如何从给定的 json 文件生成自己的 json 解析器?
- javascript - 如何使用 jQuery 选择动态值
- shopware - 从 CLI 设置 Shopware 5 商店的维护模式?
- css - 禁用离子按钮的样式在离子V4中不起作用