Pandas Multiindex Groupby Агрегация - несколько слоев - PullRequest
1 голос
/ 01 мая 2020

Я пытаюсь построить следующие данные с помощью Plotly, которые хранятся в мультииндексном фрейме данных:

ship_out_df.head(3)
                              out_tonnes    
date        loc     product         
2020-05-01  ABC     AFM       8000
                    PRE       6000
            DEF     PRE       6000
                    BZF       25200
2020-05-02  ABC     AFM       8400  
                    PRE       0 
            DEF     PRE       0 
                    BZF       25700
2020-05-03  ABC     AFM       8000  
                    PRE       8000  
            ABC     PRE       8000  
                    BZF       25000 

К сожалению, Plotly не может обрабатывать мультииндексные фреймы данных, поэтому записи с повторяющимися значениями индекса, т.е. 'PRE', являются не вычерчивается.

Как я могу получить значения для передачи в сюжетные параметры, которые поддерживают структуру даты / класса (мне не нужен lo c)? т.е. для 'PRE'

date          product  out_tonnes
'2020-05-01'  PRE      12000
'2020-05-02'  PRE      0
'2020-05-03'  PRE      16000

я пробовал:

y = ship_out_df.groupby(['product']).get_group('PRE').out_tonnes.values

, однако это, конечно, теряет структуру 'date' и подсчитывает все значения.

1 Ответ

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

IIU C,

result = (df.reset_index().loc[lambda x: x['product'].eq('PRE')]
            .groupby(['date','product'], as_index=False)['out_tonnes']
            .sum())
print(result)

         date product  out_tonnes
0  2020-05-01     PRE       12000
1  2020-05-02     PRE           0
2  2020-05-03     PRE       16000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...