0
我有一個csv
文件 - file1.csv
,它在每行中有3列。樣品看起來是這樣的:根據python中列中的值將csv文件中的記錄拆分爲塊的錯誤
A,d1,200
A,d2,250
A,d3,10
B,d1,100
B,d2,150
B,d4,45
.
.
.
上述數據的結構 - loacation_id,dept_id,num_emp
。現在我想要做的基於第一列值突破csv文件的記錄成塊,使得在一個塊有是隻有位置的記錄,然後將這些塊逐個傳遞給函數。我編寫了基於this SO post的代碼,但我得到的錯誤爲TypeError: 'itertools._grouper' object has no attribute '__getitem__'
。我目前的代碼是:
import csv
from itertools import groupby
def func(chunk):
for line in chunk:
print line
file_read = open('file1.csv', 'r')
reader = csv.reader(file_read)
for rows in groupby(reader):
func(rows)
如何根據一列中的值將記錄分塊爲塊並將塊傳遞給函數?
做group [0] [0]給我組密鑰?我的意思是,如果在我的數據集中有5個組(5個不同的location_id),那麼有什麼方法可以將它們存儲在列表中,同時形成組? – user2966197
它爲您提供了組中第一個條目的第一列,所以是的,它會給你組密鑰。 –
我已經更新腳本以存儲首先打印的位置ID的單獨列表。 –