pandas 新手,使用 pd.cut 怎么自定义开闭区间?

2022-10-08 15:29:50 +08:00
 HashV2

在用pd.cut(pd.Series, bins=bins, right=False).value_counts()对某一列值的区间数量进行统计

我想要左闭右开,但是最后一个区间要左右都是闭区间, 也就是这样

查阅了文档,只能左开右闭然后加上include_lowest=True让第一个参数的左区间变为闭区间,想了解一下有没有right=False, include_largest=True这样的实现方式

文档

1560 次点击
所在节点    Python
3 条回复
TimePPT
2022-10-08 16:12:40 +08:00
蹲一个解决方案,我之前也遇到这个问题,最后因为都是整数,所以取巧把分箱最大值改成 1000.0000001 了😂
HashV2
2022-10-08 16:31:39 +08:00
@TimePPT #1 没找到合适的方案,不过我的区间数值本来就是对列全覆盖的,bins 最后一个值可以给 np.inf ,然后替换 labels ,勉强算是实现了吧

bins = [0, 100, 200,....900, np.inf]
labels=['[0, 100)', '[100, 200)', ...., '[900, 1000]']

pd.cut(pd.Series, bins=bins, right=False,labels=labels).value_counts(sort=False)
Eureka0
2022-10-08 17:17:13 +08:00
给 pandas 提 issue 加个 include_highest 参数(狗头

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/885279

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX