我有一个外部数据集,其中包括犯罪类型和犯罪发生的区域,我需要弄清楚犯罪发生的频率。我想找到的是一个频率表,这样我就可以计算出在某个特定地区犯罪的频率(最终需要为每种类型的犯罪创建饼图,如强奸、抢劫等)
这就是我目前所拥有的:

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/

10-13 09:49