问题描述
我想根据切割间隔自动设置分箱箱线图的标签。数据箱是通过在数据框上应用 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]
)。