潘达斯多指标分组聚合--多层级。

问题描述 投票:0回答:1

我试图使用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'。

我如何才能将这些值传递给维护dategrade结构的plotly params(我不需要loc)? 即对于'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

然而,这当然会失去 "日期 "结构,并计算所有值。

python pandas plotly
1个回答
0
投票

IIUC ,

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
© www.soinside.com 2019 - 2024. All rights reserved.