将数据帧从宽到长进行转换,并计算唯一值的出现次数

2024-09-30 04:31:52 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,亲爱的社区,我有一个非常具体的问题,我很遗憾不能工作我的思想周围。当前我要转换的数据帧如下所示。你知道吗

df_larceny
CATEGORY    INCIDENTYEAR    INCIDENTMONTH       
LARCENY     2009            1
LARCENY     2009            1
LARCENY     2009            1
.............................
.............................
LARCENY     2016           11
LARCENY     2016           12
LARCENY     2016           12
LARCENY     2016           12

改造后应该是这样的。你知道吗

COUNT   INCIDENTYEAR    INCIDENTMONTH       
234     2009            1
453     2009            2
847     2009            3
943     2009            4
958     2009            5
.............................
.............................
324     2016           11
372     2016           12
241     2016           12
412     2016           12

基本上我想统计一下每年每个月盗窃案发生的频率。你知道吗

我以前试过this tutorial,可惜运气不好。你知道吗

我还尝试了各种方法来处理value\u counts(),但遗憾的是没有成功。你知道吗

出于纯粹的绝望,在最后我为另一个数据帧手工做了它,看起来像这样

jan09 = df["CATEGORY"].loc['2009-01-01':'2009-02-01'].value_counts().sum()
jan10 = df["CATEGORY"].loc['2010-01-01':'2010-02-01'].value_counts().sum()
jan11 = df["CATEGORY"].loc['2011-01-01':'2011-02-01'].value_counts().sum()
jan12 = df["CATEGORY"].loc['2012-01-01':'2012-02-01'].value_counts().sum()
jan13 = df["CATEGORY"].loc['2013-01-01':'2013-02-01'].value_counts().sum()
jan14 = df["CATEGORY"].loc['2014-01-01':'2014-02-01'].value_counts().sum()
jan15 = df["CATEGORY"].loc['2015-01-01':'2015-02-01'].value_counts().sum()
jan16 = df["CATEGORY"].loc['2016-01-01':'2016-02-01'].value_counts().sum()

jan_df = [jan09,jan10,jan11,jan12,jan13,jan14,jan15,jan16]`

我每个月都这样做,并在最后创建了一个新的数据帧,即使是像我这样的业余爱好者看起来也太低效了。 我希望这里有人能帮我。你知道吗


Tags: 数据dfvaluelocsumcategorycountslarceny

热门问题