从CSV向数据框添加字典将删除值

时间:2019-06-04 13:44:42

标签: pandas csv dataframe append

我正在尝试使用熊猫将某些值附加到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

1 个答案:

答案 0 :(得分:0)

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

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

阅读命令应为:

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

然后,您将获得与上一次迭代中保存的对象相同的对象。