如何在python中使用三个不同的值在字典中创建字典,其中date
是第一个字典的键,第二个字典(city
是键,下雨量是value)和第二个字典是第一个字典的值。
import csv
def read_data(file):
open('file', 'r') as f:
r = csv.reader(f, delimiter = ',')
s = {}
for row in r:
row = vrstica[a][b]
while a == 0 and b > 0:
row = int(key1)
while row == row[0]:
row = key2
else:
row = value
key1 = dict((key2,value) for row in reader)
s = dict(key1)
return s
答案 0 :(得分:1)
如果每个城市每天都有降雨量,您可以按照以下方式进行。如果您在一天内多次访问,则可能需要list
来保存每个城市的降雨数据值。
希望这会有所帮助。
s = {}
with open(csvfile, 'r') as f:
r = csv.reader(f, delimiter = ',')
for row in r:
key = row[0]
if not key in s:
s[row[0]]={row[1]:row[2]}
else:
s[row[0]].update({row[1]:row[2]})
<强> csvdata 强>
1/1/2018 boston 5
1/1/2018 chicago 7
1/2/2018 boston 9
1/2/2018 chicago 3
词典内容
>>> s
{'1/1/2018': {'boston': '5', 'chicago': '7'}, '1/2/2018': {'boston': '9', 'chicago': '3'}}
答案 1 :(得分:0)
使用相同的例子:
import pandas as pd
data = '''\
1/1/2018 boston 5
1/1/2018 chicago 7
1/2/2018 boston 9
1/2/2018 chicago 3'''
file = pd.compat.StringIO(data) # change to path
df = pd.read_csv(file, sep='\s+', header=None, names=list('ABC'))
# Use pandas and groupby
df.groupby(df.A)['B','C'].apply(lambda x: x.set_index('B')['C'].to_dict()).to_dict()
你得到了
{'1/1/2018': {'boston': 5, 'chicago': 7},
'1/2/2018': {'boston': 9, 'chicago': 3}}