我将开始说明我非常擅长使用Python。我对SQL有一个非常基本的知识,但这是我第一次使用Python。我有一个客户相关数据的csv文件,我需要输出花费超过1000美元的客户的记录。我也得到了这个入门代码:
import csv
import re
data = []
with open('customerData.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
data.append(row)
print(data[0])
print(data[1]["Name"])
print(data[2]["Spent Past 30 Days"])
我不是在寻找任何人给我答案,但可能会朝着正确的方向推动我。我知道它已经打开文件来读取和创建列表(数据),并准备输出第一行和第二行的值。我不知道如何调出列值而不将其限制为特定的行号。我是否需要为列创建另一个列表?我是否需要创建一个循环来输出符合>的每条记录? 1000个标准?任何建议都将不胜感激。
答案 0 :(得分:0)
要获取特定列,您可以使用for循环。我不确定你想要用它做什么,但这可能是一个很好的起点。
for i in range(0,len(data)):
print data[i]['Name']
len(data)应该等于行数,从而遍历整个列
答案 1 :(得分:0)
示例代码不会泄露数据结构的秘密。它看起来像是一个dicts列表。这没有多大意义,所以我猜猜数据的组织方式。假设数据是一个列表列表,您可以在具有列表推导的列中获取:
data = [['Name','Spent Past 30 Days'],['Ernie',890],['Bert',1200]]
spent_column = [row[1] for row in data]
print(spent_column) # prints: ['Spent Past 30 Days', 890, 1200]
但你可能想知道谁是一个大消费者,所以也许你应该回复这些名字:
data = [['Name','Spent Past 30 Days'],['Ernie',890],['Bert',1200]]
spent_names = [row[0] for row in data[1:] if int(row[1])>1000]
print(spent_names) # prints: ['Bert']
如果示例不清楚,我建议您阅读列表理解;它们很棒:)
您也可以使用常规for循环执行上述所有操作。