Я пытаюсь сгруппировать набор категориальных переменных в месяц, отфильтровать их значения и отобразить эти переменные и значения, но у меня есть некоторые сомнения относительно того, как это сделать.У меня следующие проблемы:
Это мой оригинальный фрейм данных (я назвал его df16):
Fecha inicio Delito No delitos
0 2016-01-31 ABANDONO DE PERSONA 19
1 2016-01-31 ABORTO 8
2 2016-01-31 ABUSO DE AUTORIDAD 112
3 2016-01-31 ABUSO DE CONFIANZA 241
.
.
.
2262 2016-12-31 VIOLACION 40
2263 2016-12-31 VIOLACION EQUIPARADA 4
2264 2016-12-31 VIOLACION TUMULTUARIA 1
2265 2016-12-31 VIOLENCIA FAMILIAR 1397
2266 rows × 1 columns
Задача 1)
У меня 276 категориальных переменных по месяцам,Моя цель - сгруппировать столбцы категориальных переменных по месяцам и показать столбец дат в формате, аналогичном (2016 / 01,2016 / 02, ... или январь / 2016, февраль / 2016, ...), и этоне показывать повторяющиеся даты для каждой категориальной переменной.Я пытаюсь сделать это следующим фрагментом кода:
df16.groupby(['Fecha inicio','Delito'])['No delitos'].sum().rename('No
delitos').to_frame()
и выводом
No delitos
Fecha inicio Delito
2016-01-31 ABANDONO DE PERSONA 19
ABORTO 8
ABUSO DE AUTORIDAD 112
.
.
.
2016-12-31 VIOLACION EQUIPARADA 4
VIOLACION TUMULTUARIA 1
VIOLENCIA FAMILIAR 1397
, но я хотел бы попробовать другой альтернативный способ сделать то же самое.
Задача 2)
Я хотел бы построить график категориальных переменных за месяц, но, поскольку они представляют собой 276 переменных, это для меня нежизнеспособно, поэтому я хотел бы отфильтровать более высокие переменные или установить значение, скажем,'No delitos'> = 1000. Кроме того, я уже пытался сделать это, используя
df16.groupby('Fecha
inicio').nlargest(3).reset_index(level=0,drop=True).to_frame()
, и в результате это
No delitos
Fecha inicio Delito
2016-01-31 VIOLENCIA FAMILIAR 1326
ROBO DE OBJETOS 1095
DENUNCIA DE HECHOS 1064
.
.
.
2016-12-31 VIOLENCIA FAMILIAR 1397
ROBO A NEGOCIO SIN VIOLENCIA 1209
DENUNCIA DE HECHOS 1082
, но когда я пытаюсь построить график, используя
df16.pivot(index="Fecha inicio", columns="Delito",
values="No delitos").plot()
plt.show()
Я получаю сообщение об ошибке: KeyError: 'Fecha inicio'.Итак, я хотел бы знать, как построить три столбца из кадра данных.Я надеюсь, что вы можете помочь мне, спасибо.