我有一个外部数据集,其中包括犯罪类型和犯罪发生的区域,我需要弄清楚犯罪发生的频率。我想找到的是一个频率表,这样我就可以计算出在某个特定地区犯罪的频率(最终需要为每种类型的犯罪创建饼图,如强奸、抢劫等)
这就是我目前所拥有的:
columns=defaultdict(list)
with open('Seattle_Crime_Stats_by_Police_Precinct_2008-Present.csv') as f:
reader=csv.DictReader(f)
for row in reader:
for (k,v) in row.items():
columns[k].append(v)
crimes=(columns['CRIME_TYPE'])
precincts=(columns['Precinct'])
number=(columns['Row_Value_ID'])
count_crimes=Counter(crimes)
请帮忙,我已经困在这上面好几天了(python新手)
最佳答案
我建议你阅读并使用熊猫,因为它将大大简化所有进一步的处理过程。以下是如何开始的:将CSV文件作为数据帧读取,按两个变量对数据进行分组,然后转换为表:
import pandas as pd
data = ps.read_csv("Seattle_Crime_Stats_by_Police_Precinct_2008-Present.csv")
data.groupby(["Precinct","CRIME_TYPE"]).count().unstack()
最后一行可能需要使用
sum()
而不是count()
;不清楚CSV文件的结构是什么:data.groupby(["Precinct","CRIME_TYPE"]).sum().unstack()
关于python - python-如何为csv连续计算两个字符串的频率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42664317/