我环顾四周但却没有找到我遇到的问题。
我的问题是在名为registro_usuarios.csv的csv文件中有以下数据。其中有6行和6个colmuns
registro_usuarios.csv:
RUT,Name,LastName,E-mail,ISBN1,ISBN2
111,Pablo1,Alar1,mail1,0,0
222,Pablo2,Alar2,mail2,0,0
333,Pablo3,Alar3,mail3,0,0
444,Pablo4,Alar4,mail4,0,0
555,Pablo5,Alar5,mail5,0,0
现在我如何制作一个def,允许我替换给定RUT的ISBN1或ISBN2以下的0?...例如,我想用777替换rut 333的ISBN1。然后使用def,它应该像这样改变csv中的数据。因为行和列以0,0开头,我相信如果我没有弄错的话,那么车辙333的ISBN1就是第3行第5列。
registro_usuarios.csv:
RUT,Nombre,Apellido,E-mail,ISBN1,ISBN2
111,Pablo1,Alar1,mail1,0,0
222,Pablo2,Alar2,mail2,0,0
333,Pablo3,Alar3,mail3,777,0
444,Pablo4,Alar4,mail4,0,0
555,Pablo5,Alar5,mail5,0,0
答案 0 :(得分:1)
这是我能想到的最简单的方法:
>>> import csv
>>> with open('data.csv') as f:
... data = [r for r in csv.reader(f)]
...
>>> data[3][4] = '777'
>>> with open('data.csv', 'w') as f:
... csv.writer(f).writerows(data)
...
正如您所提到的,您想要更改具有特定RUT
的行。在这种情况下,我会使用DictReader
/ DictWriter
和一个函数来根据RUT
更改行:
import csv
def change_by_rut(csv_data, rut, new_isbn1):
for row in csv_data:
if row['RUT'] == rut:
row['ISBN1'] = new_isbn1
with open('data.csv') as f:
data = [r for r in csv.DictReader(f)]
change_by_rut(data, '333', '777')
with open('data.csv', 'w') as f:
writer_obj = csv.DictWriter(f, fieldnames=data[0].keys())
writer_obj.writeheader()
writer_obj.writerows(data)
答案 1 :(得分:0)
您也可以使用Web.config
:
pandas