как посчитать значения нескольких столбцов с разными категориями - PullRequest
2 голосов
/ 10 июля 2019

Мне нужно посчитать значения нескольких столбцов с разными категориями в новом. У меня есть 16 категорий, но не все категории находятся в столбцах, которые мне нужно сосчитать. У меня есть этот df:

Tipo_Diagnosticos_Secundarios_2  ...   Tipo_Diagnosticos_Secundarios_3             
0 Enfermedades del sistema circulatorio... Clasificación suplementaria
1 Lesiones y envenenamientos  ...  Trastornos mentales
2 Neoplasias    ...                  Síntomas, signos y estados mal definidos
3 Neoplasias  ...                   Enfermedades del sistema circulatorio
4 Neoplasias  ...                   Enfermedades de la sangre
5 Neoplasias  ...                   Enfermedades del sistema circulatorio

Я пытался с этим:

df['Freq_Tipos_Diag_Sec_2']=(df.groupby('Tipo_Diagnosticos_Secundarios_2').ngroup())
df['Freq_Tipos_Diag_Sec_3']=(df.groupby('Tipo_Diagnosticos_Secundarios_3').ngroup())




df['total_Tipos_Diag_Sec'] = df['Freq_Tipos_Diag_Sec_2'] + df['Freq_Tipos_Diag_Sec_3'] 


df['total_Tipos_Diag_Sec'] = df['Freq_Tipos_Diag_Sec_2'] + df['Freq_Tipos_Diag_Sec_3']

1 Ответ

0 голосов
/ 10 июля 2019

Если нужны уникальные категории в целых числах вместо строки, используйте DataFrame.stack с Series.value_counts:

df2 = (df.filter(like='Tipo_Diagnosticos_Secundarios')
         .stack()
         .value_counts()
         .rename_axis('vals')
         .reset_index(name='counts'))

print (df2)
                                       vals  counts
0                                Neoplasias       4
1     Enfermedades del sistema circulatorio       3
2                 Enfermedades de la sangre       1
3               Clasificacion suplementaria       1
4                Lesiones y envenenamientos       1
5                       Trastornos mentales       1
6  Sintomas, signos y estados mal definidos       1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...