Python 行列表中的计数值除以嵌套dict中的键
这是一个 首先,我尝试从行中的值创建dict:Python 行列表中的计数值除以嵌套dict中的键,python,dictionary,readlines,csvreader,Python,Dictionary,Readlines,Csvreader,这是一个 首先,我尝试从行中的值创建dict: import csv who = set() figure = set() date = set() action = [] activity = {'play': 0, 'throw': 0, 'pin': 0, 'tap': 0} with open(r'ShtrudelT.csv', mode = 'r') as csv_file: lines = csv_file.readlines()
import csv
who = set()
figure = set()
date = set()
action = []
activity = {'play': 0, 'throw': 0, 'pin': 0, 'tap': 0}
with open(r'ShtrudelT.csv',
mode = 'r') as csv_file:
lines = csv_file.readlines()
for row in lines:
data = row.split(',')
who.add(data[1])
figure.add(data[2])
date.add(data[3][:7])
action.append(data[4].strip())
xdict = dict.fromkeys(who,
dict.fromkeys(figure,
dict.fromkeys(date, activity)))
结果是:
{'Googenhaim': {'Circle': {'2020-04': {'play': 0,'throw': 0, 'pin': 0, 'tap': 0},
'2020-06': {'play': 0, 'throw': 0, 'pin': 0, 'tap': 0},
'2020-05': {'play': 0, 'throw': 0, 'pin': 0, 'tap': 0}},
'Rectangle': {'2020-04': {'play': 0, 'throw': 0, 'pin': 0, 'tap': 0}...}
其次,我需要计算按键划分的操作数来分析数据。例如,Googenhaim每月通过任何类型的动作使用Circle的次数
有没有不使用熊猫的解决方案
我们使用字典,其中每个键都是我们想要计算的组合。此组合由用户名、形状、月份和操作组成。在处理每一行时,我们形成键并将其存储在字典中。如果是第一次遇到它,则插入它,否则更新计数
在处理完所有的行之后,我们可以做任何我们想做的后处理。
希望这能解决问题。嗨。你能举例说明你想要计算什么吗?你想计算“谁”、“数字”、“日期”的每一个可能值的行动次数吗?例如,我需要计算Googenhaim每个月用Circle采取每一个行动的次数(等等)。
import csv
count_dict = {}
with open(r'ShtrudelT.csv',
mode = 'r') as csv_file:
lines = csv_file.readlines()
for row in lines:
data = row.split(',')
key = data[1] + "_" + data[2] + "_" + data[3][:7] + "_" + data[4].strip()
if key in count_dict:
count_dict[key] += 1
else:
count_dict[key] = 1
print("\t".join(["Name", "Shape", "Month", "Action", "Count"]))
for element, count in count_dict.items():
items = element.split("_")
print("\t".join(items) + "\t" + str(count))