我正在处理芝加哥犯罪数据,并希望汇总每个地区/社区区域的前5名犯罪的计数。但是,我的代码有效,但是在数据框列中出现了不需要的索引和CategoricalIndex类型列,这使我无法访问特定列以进行进一步的数据处理。
我做了什么:
crimes_2012 = pd.read_csv('Chicago_Crimes_2012_to_2017.csv', sep=',', error_bad_lines=False)
df=crimes_2012[['Primary Type', 'Location Description', 'Community Area']]
crime_catg = df.groupby(['Community Name', 'Primary Type'])['Primary Type'].count().unstack()
crime_catg = crime_catg[['THEFT','BATTERY', 'CRIMINAL DAMAGE', 'NARCOTICS', 'ASSAULT']]
crime_catg = crime_catg.dropna()
这是我当前需要改进的输出:
这是我的尝试:
当我尝试下面的代码时,我仍然没有得到新的索引,并且索引名称在输出数据框中显示为奇怪。为什么?如何解决这个问题?任何想法?谢谢
即使我尝试重新索引数据框,它毕竟也没有获得新索引。
crime_catg.reindex(inplace=True, drop=True)
有解决此问题的主意吗?有什么想法吗?
答案 0 :(得分:2)
有两种处理方法。
1)保留CategoricalIndex
类型并使用.add_categories
方法更新有效类别,例如,解决您的.reindex
问题:
crime_catg.columns = crime_catg.columns.add_categories(['Community Name'])
2)投射为pandas.Index
:
crime_catg.columns = pd.Index(list(crime_catg.columns))