为箱线图创建连续标签

问题描述

我想根据切割间隔自动设置分箱箱线图的标签。数据箱是通过在数据框上应用 pd.cut() 来创建的。 pd.cut 的列表是手动指定的(请参阅 cut 列表),但我希望根据切割列表自动设置直方图标签。

如何使用代码将 cut 列表转换为标签列表? 下面的代码给了我一个部门:

['0-20','20-40','40-60','60-80','80-100']

但是我希望它是:

['0-20','21-40','41-60','61-80','81-100']

代码:

cut = [0,20,40,60,80,100]

for i,p in enumerate(zip(cut,cut[1:])):

    label.append('{}-{}'.format(cut[i],cut[i + 1]))
print(label)

解决方法

您可以执行以下操作:

cut = [0,20,40,60,80,100]
label = []

for i,p in enumerate(zip(cut,cut[1:])):
    label.append('{}-{}'.format(p[0] + 1 if p[0] != 0 else p[0],p[1]))

它会给你:

label
['0-20','21-40','41-60','61-80','81-100']

p 将是 2 个值(cut[i]cut[i+1])并且您希望将 1 添加到第一个位置,除非它是开头(这由代码中的以下条件处理高于 ...1 if p[0] != 0 else p[0])。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...