我需要在一个新的类别中计算具有不同类别的多个列的值。我有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']
答案 0 :(得分:0)
如果需要整数形式的唯一类别,请使用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