我目前有很多客户数据,其中每行数据都是客户的单独交互,但是有些客户有多次交互,因此许多客户都有多行。多个交互客户行中的每个中的一些变量是相同的而其他变量是不同的(即,年龄可以是相同的,但是不同的存储)。
我试图创建一个字典,其中customer id是密钥,行数据附加到id。这意味着附加到每个键的列表是列表。因此,我试图从一系列不同的交互中基于每个独特客户的第一次交互中访问一个项目(单个变量)。
import sys
import re
import csv
from collections import defaultdict
def extract_data(filename):
customer_list = {}
count = 0
counter = 1
file = open(filename, 'r')
reader = csv.reader(file, delimiter=',')
for row in reader:
if row[2] not in customer_list:
customer_list[row[2]] = [row]
count += 1
else:
customer_list[row[2]].append(row)
print 'total number of customers: ', len(customer_list.keys())
zipcodes = []
numzips = 0
for customer in customer_list:
for item in customer.value():
if item[1[7]] not in zipcodes:
zipcodes.append(item[1[7]])
numzips += 1
print zipcodes
print numzips
注意我非常确定我不能使用项目[1 [7]]来引用列表中的第一个列表,然后是第7个项目,但我也不想迭代每个内部每个项目的字典列表。我遇到了一系列不同的错误,实际上不知道如何继续。
非常感谢任何帮助/建议。
答案 0 :(得分:0)
假设你的字典看起来像这样:
customer_dict =
{ " cust_id_1" :[[item1],[item2,item3],[item4,item5]],
" cust_id_2" :[[item7],[item8],[item9,item10,item11]] }
要访问item4,您可以使用customer_dict [" cust_id1"] [2] [0]
希望我的词典正确。