从 value.counts() 创建一个新的数据框

ana*_*112 1 python pandas

我有一个数据框df_1year其中有一列表示犯罪发生的时间。例如,df_1 是这样的:

   location    description   Weapon   Year
0  Howard Ave   Auto theft   Knife    2017
1  Craig Drive  Burglary     Gun      2014
2  King Ave     Assault      Hands    2017
Run Code Online (Sandbox Code Playgroud)

我需要创建一个数据框,其中包含 2012-2017 年的犯罪发生次数。

crime_year = pd.DataFrame(df_1.year.value_counts(), columns=["Year", "AggregateCrime"])
crime_yearindex = crime_year.sort_index(axis = 0, ascending=True)
crime_yearindex
Run Code Online (Sandbox Code Playgroud)

当我打印时crime_yearindex,我只得到列标题而不是数据本身。我可能做错了什么?

WeN*_*Ben 8

当你这样做时value_counts,它会返回一个系列,所以我在.reset_index().values之后 添加value_counts,使索引也成为值

crime_year = pd.DataFrame(df.Year.value_counts().reset_index().values, columns=["Year", "AggregateCrime"])
crime_yearindex = crime_year.sort_index(axis = 0, ascending=True)
crime_yearindex
Out[1225]: 
   Year  AggregateCrime
0  2017               2
1  2014               1
Run Code Online (Sandbox Code Playgroud)