gpt4 book ai didi

python - 在 Python 中创建和更新字典

转载 作者:太空宇宙 更新时间:2023-11-04 10:00:28 24 4
gpt4 key购买 nike

我有一个包含 3 列的表格:

Date        Category         Value
1/1/2017 Cat1 111
1/2/2017 Cat1 222
1/3/2017 Cat2 333
1/4/2017 Cat3 444

如何将其转换为以类别为键、以字典列表 [{date:value}] 为值的字典列表的字典?例如

{cat1 : [{1/1/2017 : 111} , {1/2/2017 : 222}]}
{cat2 : [{1/3/2017 : 333}]}
{cat3 : [{1/4/2017 : 444}]}

如何将新的字典元素附加到父字典?

此数据结构可用于绘制多系列散点图。

编辑:

感谢所有的回答和评论。我试过以利沙的回答,效果很好。这是读取 csv 文件和构建字典的完整代码。

import csv
from io import StringIO
from itertools import groupby
from operator import itemgetter

input_file = "c:\\path\\to\\test.csv"

with open(input_file, 'r') as file:
content = file.read()

formatted_content = csv.Dictreader(StringIO(content))

result = {}
for category, entries in groupby(sorted(formatted_content, key=itemgetter('Category')), key=itemgetter('Category')):
result[Category] = [{entry['Date']: entry['Value']} for entry in entries]

print(result)

# continue processing the result to plot multiseries chart

最佳答案

您可以利用 python csv.DictReaderitertools.groupby功能:

import csv
from io import StringIO
from itertools import groupby
from operator import itemgetter

values = u'''Date,Category,Value
1/1/2017,Cat1,111
1/2/2017,Cat1,222
1/3/2017,Cat2,333
1/4/2017,Cat3,444'''

reader = csv.DictReader(StringIO(values))


result = {}
for category, entries in groupby(sorted(reader, key=itemgetter('Category')),
key=itemgetter('Category')):
result[category] = [{entry['Date']: entry['Value']} for entry in entries]

关于python - 在 Python 中创建和更新字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43827422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com