посчитать частоту элемента в кадре в строке - PullRequest
0 голосов
/ 16 марта 2020
[enter image description here][1]

мой фрейм данных похож на EMPLOYEE_ID 2020-02-26 2020-02-27 2020-02-28 2020-02-29 2020-03-01 100000074 Absent Absent Absent Present Absent 100000086 No Match No Match Absent Present Absent

и хочет быть похож на

EMPLOYEE_ID     Absent  Present  No Match 
100000074       4         1        0

PLZ help

1 Ответ

1 голос
/ 16 марта 2020

Используйте DataFrame.melt с DataFrame.pivot_table:

df1 = (df.melt('EMPLOYEE_ID')
         .pivot_table(index='EMPLOYEE_ID', columns='value', aggfunc='size', fill_value=0)
         )
print (df1)
value        Absent  No Match  Present
EMPLOYEE_ID                           
100000074         4         0        1
100000086         2         2        1

Другое решение с Series.value_counts для строк в DataFrame.apply:

df1 = (df.set_index('EMPLOYEE_ID').apply(lambda x: x.value_counts(), axis=1)
         .fillna(0)
         .astype(int))
print (df1)
             Absent  No Match  Present
EMPLOYEE_ID                           
100000074         4         0        1
100000086         2         2        1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...