更改pandas透视表的区间范围

-3 投票
1 回答
56 浏览
提问于 2025-04-13 01:57

我有一个 pandas 的透视表,我想把数据的分组范围改成从 0 开始。

Hour_Num  (0, 12] (12, 15]    (15, 20]    (20, 24]
today_qty yesterday_qty   today_qty   yesterday_qty   today_qty   yesterday_qty   today_qty   yesterday_qty
channel_name                              
Ajio  22  68  0   55  0   53  0   32
Amazon    3   6   0   3   0   3   0   0
D2C   0   0   0   1   0   0   0   0
Flipkart  25  32  0   18  0   42  0   26
Limeroad  1   0   0   0   0   1   0   0
Meesho    3   7   0   3   0   1   0   0
Myntra    61  102 0   53  0   96  0   55
Nykaa 12  8   0   10  0   14  0   18
Snapdeal  0   0   0   0   0   0   0   1
TataCliq  3   9   0   2   0   5   0   5

我想要的分组是 (0, 12] (0, 15] (0, 20] (0, 24]。我想显示从一天开始到中午12点、下午3点、晚上8点和午夜12点的订单总数。

12: 中午12点
15: 下午3点
20: 晚上8点
24: 午夜12点

这是我的代码:

df['Hour_Num'] = pd.cut(df.order_hour,[0,12,15,20,24])

pivot_df = df.pivot_table(index='channel_name', values=(['yesterday_qty','today_qty']), columns=['Hour_Num'], aggfunc=('sum')).fillna(0)

pivot_df = pivot_df.swaplevel(0,1, axis=1).sort_index(axis=1)

我很感激任何提示或解决方案。谢谢。

1 个回答

暂无回答

撰写回答