【发布时间】:2019-09-24 15:59:35
【问题描述】:
我正在尝试按以下格式打印字典。我想这样做是因为我需要使用 JSON 格式在 D3 中绘制一些趋势图。对于这种趋势,我计算了每个州在每个十年(1980 年代到 2010 年代)内的谋杀案数量。
我能够输出文件和所有内容,但是由于我正在尝试创建一个图形,因此 JSON 文件中的数据格式需要非常具体地标记字典中的每个键、值对输出。
xl = pd.ExcelFile('Wyoming.xlsx')
df = xl.parse('Sheet1')
year = df['Year']
state = df['State']
freq = dict()
for i in range(0, len(df)):
currYear = year.iloc[i]
if(currYear >= 1980 and currYear < 1989):
currDecade = 1980
elif(currYear >= 1990 and currYear < 2000):
currDecade = 1990
elif(currYear >= 2000 and currYear < 2010):
currDecade = 2000
elif(currYear >= 2010):
currDecade = 2010
currState = state.iloc[i]
if currDecade in freq:
if currState in freq[currDecade]:
freq[currDecade][currState] += 1
else:
key = {currState: 1}
freq[currDecade].update(key)
else:
key = {currDecade:{currState: 1}}
freq.update(key)
#print(freq)
freq1 = [{'Decade': d, 'State': [{'State': s, 'Freq': f}]} for d, s, f in freq.items()]
print(freq1)
我收到错误“ValueError: no enough values to unpack (expected 3, got 2)”
我希望输出如下所示。
[{"Decade": "1980", "State": [{"State": "California", "Freq": 29591}, {"State": "Massachusetts", "Freq": 1742}, ...}]
【问题讨论】:
标签: json python-3.x pandas