我有一個代碼,它能夠給我的名單如下:如何計算每個與Python相同的鍵的不同值?
Name id number week number
Piata 4 6
Mali 2 20,5
Goerge 5 4
Gooki 3 24,64,6
Mali 5 45,9
Piata 6 1
Piata 12 2,7,8,27,16 etc..
與下面的代碼:
import csv
from datetime import date
datedict = defaultdict(set)
with open('d:/info.csv', 'r') as csvfile:
filereader = csv.reader(csvfile, 'excel')
#passing the header
read_header = False
start_date=date(year=2009,month=1,day=1)
#print((seen_date - start_date).days)
tdic = {}
for row in filereader:
if not read_header:
read_header = True
continue
# reading the rest rows
name,id,firstseen = row[0],row[1],row[3]
try:
seen_date = datetime.datetime.strptime(firstseen, '%d/%m/%Y').date()
deltadays = (seen_date-start_date).days
deltaweeks = deltadays/7 + 1
key = name,id
currentvalue = tdic.get(key, set())
currentvalue.add(deltaweeks)
tdic[key] = currentvalue
except ValueError:
print('Date value error')
pass
現在,我想我的列表轉換爲給我一個名單每個名稱的ID號和其週數如下表:
Name number of ids weeknumbers
Mali 2 20,5,45,9
Piata 3 1,6,2,7,8,27,16
Goerge 1 4
Gooki 1 24,64,6
任何人都可以幫我編寫這部分的代碼?
您的CSV輸入文件d:/info.csv不應該有彗星分隔的樣式?什麼是defaultdict(set)?是否等於{}? – 2013-04-22 14:09:29
@Mikael Mayer輸入正常。它的工作原理和默認(設置)= {} – UserYmY 2013-04-22 14:17:09
你能提供一個輸入文件嗎?我不明白你提供的第一個文件是輸出。 – 2013-04-22 14:27:00