用Python在CSV文件中填写缺失的数据

2024-09-29 01:37:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我正在尝试将一些缺失的数据输入到csv文件中。我还想把第一个值除以2

这是输入文件:

5,1
6,1
10,1

输出文件,填写0中缺少的数字,并将第一个值除以2

0/2, 0
1/2, 0
2/2, 0
3/2, 0
4/2, 0
5/2, 1
6/2, 1
7/2, 0
8/2, 0
9/2, 0
10/2, 1

这是到目前为止我的代码,我首先打开初始文件,然后从0开始将缺少的值写入新文件

import csv

with open(r"C:\Users\Desktop\initial.csv") as f:  
    reader = csv.reader(f)
    
with open("C:\\Users\\Desktop\\newfile.csv", "w") as csvfile:  
   csvwriter = csv.writer(csvfile)  
   for i in range(11):     
        csvwriter.writerow([i,0])

我被困在如何检查初始文件,比较看新值是否存在,如果存在,复制到新文件。任何帮助都将不胜感激。我也愿意接受一种更简单的方法。谢谢


Tags: 文件csv数据csvfile代码importaswith
1条回答
网友
1楼 · 发布于 2024-09-29 01:37:30

您可以使用^{}手动迭代csv文件:

import csv

with open("initial.csv") as inp_f, open("newfile.csv", "w+") as out_f:
    reader = csv.reader(inp_f)
    writer = csv.writer(out_f)
    last_row = next(reader, None)
    for i in range(11):
        if last_row and last_row[0] == str(i):
            writer.writerow((i / 2, 1))
            last_row = next(reader, None)
        else:
            writer.writerow((i / 2, 0))

p.S.仅当源文件中的行按第一列升序排序时,此操作才有效

相关问题 更多 >