Pandas: как включить категорию в groupby, которой нет в DataFrame

#python #pandas

#python #pandas

Вопрос:

Я использовал функцию groupby в Pandas Dataframe.

 df :
Code  Level  
U-01   H
U-02   L
U-03   H
U-04   H
U-05   H
U-06   L
  

Я хотел посчитать количество «кода»

 df = df.groupby('Level')['Code'].count()
  

Теперь результат,

 Level  Code
H        4   
L        2
  

На самом деле, существует 3 категории «H», «L», «M» по уровню.

В этом случае нет категории «M».

Если нет категории «H», «M» или «L», я хочу выразить категорию и значение «0».

** Это значение df является динамическим. **

Моя желаемая таблица вывода будет выглядеть следующим образом:

 Level  Code
H        4
M        0   
L        2
  

Пожалуйста, помогите мне!

Ответ №1:

Используйте Series.reindex список всех возможных категорий:

 df1 = df.groupby('Level')['Code'].count().reindex(['H','M','L'], fill_value=0).reset_index()
print (df1)
  Level  Code
0     H     4
1     M     0
2     L     2