在csv文件中填充一行這裏是我想用python更新的一個csv文件。 它有3列:按照
col1 = [1,2,3,4,5,6,7,8,9,10]
col2 = [A, A, A, B, C, C, C, C, A, A]
col3 = []
對於COL3每個細胞,我想填補一個ID號,將改變的COL2變化的內容,只有當。
在我的例子,我會得到col3 = [1,1,1,2,3,3,3,3,4,4]
任何人給我的方法是什麼?
在csv文件中填充一行這裏是我想用python更新的一個csv文件。 它有3列:按照
col1 = [1,2,3,4,5,6,7,8,9,10]
col2 = [A, A, A, B, C, C, C, C, A, A]
col3 = []
對於COL3每個細胞,我想填補一個ID號,將改變的COL2變化的內容,只有當。
在我的例子,我會得到col3 = [1,1,1,2,3,3,3,3,4,4]
任何人給我的方法是什麼?
在Python 3:
from itertools import groupby
from operator import itemgetter
import csv
with open('f1.csv', newline='') as f_in, open('f2.csv', 'w', newline='') as f_out:
reader = csv.reader(f_in)
writer = csv.writer(f_out)
for i, (key, group) in enumerate(groupby(reader, key=itemgetter(1)), start=1):
for row in group:
writer.writerow(row + [i])
如果使用Python 2.7,使用的語句改爲
with open('f1.csv', 'rb') as f_in, open('f2.csv', 'wb') as f_out:
嗨史蒂文,thx快回答:使用相同的示例csv文件我得到一個「文件」C:\路徑\ script.py「,第8行,在
@Kerplouz:這意味着您的輸入文件中有空行。有時文件末尾的額外換行符是空行的來源。也有可能你有一個單一的項目。如果您的分隔符不是逗號,您也可以獲得單個項目行。對於其他分隔符,請執行'reader = csv.reader(f_in,delimiter ='\ t')#或其他分隔符。 – 2014-09-10 14:47:27
夥計,非常感謝,它完美的作品!除了我忘了複製標題... :)但我應該能夠管理它們。我知道這是一個愚蠢的/初學者的問題,但我剛開始學習編程,同時我需要它的工作... – Kerplouz 2014-09-10 14:57:53
「只有當COL2的內容改變」你是什麼意思? 'col1'的作用是什麼? – 2014-09-10 14:20:35
你可以在你的問題中更精確嗎?你問「我如何填寫col3'數組?」或者你問「如何將數組寫入CSV文件?」 – 2014-09-10 14:23:35
哦,是的標題是不完整的......它應該是「根據另一行的內容在一個csv文件中填充一行」 – Kerplouz 2014-09-10 14:26:41