python-3.x - 如何从数据中创建字典
问题描述
我正在尝试创建一个函数,为每一天(第一列)创建一个字典,并记录当天的反馈。
我遇到的主要问题是如何检测这是新的一天并创建一个新字典。
这是数据:
0 21 M 34 P
0 22 F 12 N
0 28 M 67 P
1 18 M 22 P
1 21 F 88 P
1 34 F 97 N
2 55 M 21 P
2 65 M 32 P
2 33 F 55 N
2 48 F 7 P
解决方案
结合csv.reader
++对象collections.defaultdict
:collections.Counter
from collections import defaultdict, Counter
import csv
from io import StringIO
data = '''0 21 M 34 P
0 22 F 12 N
0 28 M 67 P
1 18 M 22 P
1 21 F 88 P
1 34 F 97 N
2 55 M 21 P
2 65 M 32 P
2 33 F 55 N
2 48 F 7 P'''
d = defaultdict(Counter)
reader = csv.reader(StringIO(data), skipinitialspace=True, delimiter=' ')
for row in reader:
d[row[0]][row[4]] += 1
d = {int(k): dict(v) for k, v in d.items()}
print(d)
输出:
{0: {'P': 2, 'N': 1}, 1: {'P': 2, 'N': 1}, 2: {'P': 3, 'N': 1}}
推荐阅读
- python - Scikit 混淆矩阵与真实标签不匹配
- python - 如何使用matplot lib在x轴上移动图
- python-3.x - 如何根据另一列的值更改图表的颜色?
- sql - 错误格式的数组文字:必须引入明确指定的数组维度
- linux - 从 ping 中删除摘要信息的命令行选项
- where-clause - CodeProfiler 警告的 where 子句中的否定条件
- javascript - 如何从 HTML 页面获取图像 url 并将其存储在变量中?
- c++ - qt 自定义类中没有名为“setText”的成员错误
- amazon-web-services - 有没有办法隔离一个状态(或某些状态),以便其余的不会在 AWS Step Function 中执行(调试)?
- python - 无法打开使用 python 和 Django 创建的 zip 文件