【发布时间】:2015-07-27 19:35:34
【问题描述】:
我正在尝试对一个非常大的 csv 文件运行回归。但是,许多列被构造为表示二进制情况,并且只有 1 个值被记录在 csv 中。应该为 0 的值被列为 ''(空)
有没有一种方法可以解析 CSV 文件中的所有值,以便将 '' 值记录为 0?
例如:我想转换这个:
One,Two,Three,Four
1,,,1
,,1,
1,,1,
,,,1
变成这样:
One,Two,Three,Four
1,0,0,1
0,0,1,0
1,0,1,0
0,0,0,1
这是我到目前为止的代码。我使用DictReader 来修复我需要更新的值。但是,我完全不知道如何将更新后的 dict 重新放入“固定”csv 文件中。到目前为止,我尝试过的所有东西都坏了。
import csv
import pandas
with open('TestCSV.csv','r') as infile,open('Fixed.csv','w') as outfile:
r = csv.DictReader(infile)
w = csv.DictWriter(outfile)
for row in r:
for val in row:
if len(row[val])<1:
row[val]='0'
#w.write_row(row) # Produces TypeError
【问题讨论】:
-
最后你真的要创建一个数据框吗?
标签: python csv dictionary