首页 > 解决方案 > 如何从数据中创建字典

问题描述

我正在尝试创建一个函数,为每一天(第一列)创建一个字典,并记录当天的反馈。

我遇到的主要问题是如何检测这是新的一天并创建一个新字典。

这是数据:

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

​​​

标签: python-3.xdictionaryfile-io

解决方案


结合csv.reader++对象collections.defaultdictcollections.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}}

推荐阅读