【问题标题】:Appending a dict to Dataframe from CSV is removing the values将 dict 从 CSV 附加到 Dataframe 正在删除值
【发布时间】:2019-10-20 01:31:16
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: pandas csv dataframe append


    【解决方案1】:

    写入和读取 csv 的参数不匹配。查看第二个输出的索引 - 读取 csv 失败,因为没有给出分隔符:

    Index: [id0;cnj0;errotxt0, id1;cnj1;errotxt1...
    

    读取命令应该是:

    erro = pd.read_csv('C:\\TESTEPANDAS\\errot.csv', sep=";")
    

    然后您将返回您在上一次迭代中保存的相同对象。

    【讨论】:

      猜你喜欢
      • 2015-03-06
      • 1970-01-01
      • 1970-01-01
      • 2018-01-09
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      • 2020-03-01
      • 2020-02-25
      相关资源
      最近更新 更多