pandas cut()
documentation声明:“超出界限的值在生成的分类对象中将为NA。”当上限不一定清楚或重要时,这会使问题变得困难。例如:
cut (weight, bins=[10,50,100,200])
将产生垃圾箱:
[(10, 50] < (50, 100] < (100, 200]]
所以cut (250, bins=[10,50,100,200])
会产生NaN
,cut (5, bins=[10,50,100,200])
也是一样,我想做的是在第一个例子中产生> 200
,在第二个例子中产生< 10
。
我意识到我可以使用cut (weight, bins=[float("inf"),10,50,100,200,float("inf")])
或类似的方法,但我所遵循的报表样式不允许使用(200, inf]
。我也意识到我实际上可以通过cut()
上的labels
参数指定自定义标签,但这意味着每次调整bins
时都要记住调整它们,这可能很频繁。
我是否已经尝试了所有的可能性,或者cut()
或pandas
中是否有什么东西可以帮助我做到这一点?我正在考虑为cut()
编写一个 Package 函数,它可以自动从垃圾箱中生成所需格式的标签,但我想先在这里检查一下。
3条答案
按热度按时间5q4ezhmt1#
您可以使用
float("inf")
作为区间列表中的上限,-float("inf")
作为下限。这将删除NaN值。bttbmeg02#
等了几天,还是没有答案--我想这可能是因为除了写
cut()
Package 函数之外,实在没有别的办法了。我在这里发布了我的版本,并将问题标记为已回答。如果有新的答案沿着,我会更改它。gstyhher3#
只需添加
np.inf
,例如: