如何解决熊猫中CategoricalIndex列的问题?

时间:2019-04-18 15:34:46

标签: python pandas

我正在处理芝加哥犯罪数据,并希望汇总每个地区/社区区域的前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()

这是我当前需要改进的输出:

enter image description here

这是我的尝试

当我尝试下面的代码时,我仍然没有得到新的索引,并且索引名称在输出数据框中显示为奇怪。为什么?如何解决这个问题?任何想法?谢谢

enter image description here

即使我尝试重新索引数据框,它毕竟也没有获得新索引。

crime_catg.reindex(inplace=True, drop=True)

有解决此问题的主意吗?有什么想法吗?

1 个答案:

答案 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))