中文Python的Pandas的 SQL 风格窗口排名、滞后和累计

中文Python 0 5

中文版Pandas

设 类别内排名 = 表格.窗口函数(
CSV数据,
"产品类别",
"销售额",
"销售额",
函数="dense_rank",
降序=真,
)
设 类别内上一单 = 表格.窗口函数(
CSV数据,
"产品类别",
"销售日期",
"销售额",
函数="lag",
)
打印("类别内销售额排名:", 表格.前几行(类别内排名, 10))
打印("类别内上一单销售额:", 表格.前几行(类别内上一单, 10))

原版Pandas

类别内排名 = CSV数据.sort_values("销售额", ascending=False).copy()
类别内排名["_窗口序号"] = 类别内排名.groupby("产品类别")["销售额"].rank(
ascending=False, method="dense"
)
类别内上一单 = CSV数据.sort_values("销售日期").copy()
类别内上一单["_窗口序号"] = 类别内上一单.groupby("产品类别")["销售额"].shift(1)
print("类别内销售额排名:", 类别内排名.head(10))
print("类别内上一单销售额:", 类别内上一单.head(10))

打印信息

类别内销售额排名:                订单编号       销售日期   产品名称  产品类别  ...  销售数量文本  产品类别分类  产品类别编码 _窗口序号
74  ORD202607270075 2026-05-27    投影仪  办公设备  ...       9    办公设备       0   1.0
88  ORD202607270089 2026-07-23  笔记本电脑  电子产品  ...       6    电子产品       1   1.0
52  ORD202607270053 2026-04-28  笔记本电脑  电子产品  ...       8    电子产品       1   2.0
5   ORD202607270006 2026-05-01  笔记本电脑  电子产品  ...       5    电子产品       1   3.0
54  ORD202607270055 2026-05-12    投影仪  办公设备  ...       5    办公设备       0   2.0
24  ORD202607270025 2026-07-13    投影仪  办公设备  ...       5    办公设备       0   3.0
51  ORD202607270052 2026-07-06   智能手机  电子产品  ...       6    电子产品       1   4.0
46  ORD202607270047 2026-07-23    投影仪  办公设备  ...       7    办公设备       0   4.0
43  ORD202607270044 2026-07-03  笔记本电脑  电子产品  ...       8    电子产品       1   5.0
87  ORD202607270088 2026-06-29   平板电脑  电子产品  ...       7    电子产品       1   6.0

[10 rows x 17 columns]
类别内上一单销售额:                订单编号       销售日期   产品名称  产品类别  ...  销售数量文本  产品类别分类  产品类别编码    _窗口序号
52  ORD202607270053 2026-04-28  笔记本电脑  电子产品  ...       8    电子产品       1      NaN
97  ORD202607270098 2026-04-29   无线耳机  电子产品  ...       2    电子产品       1  82944.0
5   ORD202607270006 2026-05-01  笔记本电脑  电子产品  ...       5    电子产品       1   1440.0
19  ORD202607270020 2026-05-02   智能手表  电子产品  ...       7    电子产品       1  60525.0
84  ORD202607270085 2026-05-02    打印机  办公设备  ...       8    办公设备       0      NaN
9   ORD202607270010 2026-05-04    显示器  电脑配件  ...       3    电脑配件       2      NaN
6   ORD202607270007 2026-05-05    打印机  办公设备  ...       6    办公设备       0  14248.0
58  ORD202607270059 2026-05-05   智能手机  电子产品  ...       4    电子产品       1   8309.0
11  ORD202607270012 2026-05-06   智能手表  电子产品  ...       8    电子产品       1  24876.0
92  ORD202607270093 2026-05-09   机械键盘  电脑配件  ...       7    电脑配件       2   4161.0


也许您对下面的内容还感兴趣: