我的csv文件中的值为0,我想用0.00替换。通过这种方式,我可以运行需要float或double值的脚本(如果它首先读取0,那么当需要加倍时,它将使整个列成为整数。)
到目前为止,这是我的代码:
with open("in_file.csv","rb") as infile,open("out_file.csv","wb") as outfile:
reader = csv.reader(infile)
writer = csv.writer(outfile)
for row in reader:
writer.writerow([f if f !=0 else '{:0.2f}'.format(0) for f in row])
然而,在此运行之后,仍然没有尾随零。在这种情况下,有谁会知道我做错了什么?
任何帮助都会很棒。
谢谢。
答案 0 :(得分:0)
f
应该是代码中的字符串。我怀疑你有空格。试试这个:
with open("in_file.csv","rb") as infile,open("out_file.csv","wb") as outfile:
reader = csv.reader(infile)
writer = csv.writer(outfile)
for row in reader:
writer.writerow([f if f.strip() != '0' else '{:0.2f}'.format(0) for f in row])
答案 1 :(得分:0)
根据你的描述; 这个是你的问题:
如果它首先读取0,它将使整个列成为整数 需要加倍
从CSV文件转换字符串数据时,请考虑使用float()
转换函数强制从字符串转换为浮点数;
In [1]: float('0')
Out[1]: 0