2017-03-08 132 views
2

我有一個外部數據集,其中包括犯罪類型及其發生的區域,我需要計算犯罪發生的頻率。我想找到的將是一個頻率表,以便我可以計算在特定區域犯罪的頻率(最終需要爲每種類型的犯罪(例如強姦,搶劫等)創建餅圖) 這就是我到目前爲止有:python - 如何計算csv連續兩個字符串的頻率

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)

回答

0

我建議你閱讀關於熊貓和使用它,因爲它會大大簡化所有進一步處理。下面是如何開始:讀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() 
0

您可以使用value_counts()函數:

dataframe_name['column_name'].value_counts() 

這會給你的頻率爲所有唯一值。