pandas сводная таблица с параметром «столбцы», но без значений для каждой категории столбца - PullRequest
1 голос
/ 06 мая 2020

Я хотел бы применить pd.pivot_table (), чтобы получить количество каждого категориального значения для столбца 'category'.

Здесь основная c информация набора данных выглядит следующим образом:

df.info()
Data columns (total 3 columns):
location                                   2270 non-null object
time                               2270 non-null object
categories    2270 non-null object
dtypes: object(3)

Мой код:

table=pd.pivot_table(df,values=['categories'],
                     index=['location','time'],
                     columns=['categories'],
                     aggfunc='count',fill_value=0)
table.head()

Ожидаемый результат:

location    time    Cat1 Cat2
L1      Jan-2020    5   1
L1      Feb-2020    2   1
L2      Jan-2019    4   3
L2      Feb-2020    5   0

Но мой результат:

    location      time  
    L1      Jan-2020    
    L1      Feb-2020    
    L2      Jan-2019    
    L2      Feb-2020    

Я пробовал Чтобы создать простой фрейм данных, введя данные, как в примере ниже, я смог бы получить ожидаемый результат. Но если я импортирую весь свой фрейм данных из файла csv, это не сработает.

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html

Заранее спасибо за все предложения и помощь.

1 Ответ

0 голосов
/ 06 мая 2020

Думаю, вам нужна функция GroupBy.size для подсчета, а также параметр values следует опустить:

table=pd.pivot_table(df,
                     index=['location','time'],
                     columns=['categories'],
                     aggfunc='size',fill_value=0)
print (table.head())
categories         Cat1  Cat2
location time                
L1       Feb-2020     2     1
         Jan-2020     5     1
L2       Feb-2020     5     0
         Jan-2019     4     3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...