Ошибка индексации в графике для pandas версия> = 0.20 - PullRequest
2 голосов
/ 28 мая 2020

Я хочу использовать код из этого ответа , поскольку он делает именно то, что я хочу. Я вставляю его сюда для полноты своего вопроса:

out = pd.cut(s, bins=[0, 0.35, 0.7, 1], include_lowest=True)
out_norm = out.value_counts(sort=False, normalize=True).mul(100)
ax = out_norm.plot.bar(rot=0, color="b", figsize=(6,4))
ax.set_xticklabels([c[1:-1].replace(","," to") for c in out.cat.categories])
plt.ylabel("pct")
plt.show()

Я получаю сообщение об ошибке, указывающее на строку ax.set_xticklabels, о том, что:

TypeError: 'pandas._libs.interval.Interval' object is not subscriptable.

Я понимаю, что это было изменено после pandas версии 0.20. Как я могу изменить эту строку, чтобы сделать то же самое, но избежать ошибки?

1 Ответ

2 голосов
/ 28 мая 2020

Вы можете сделать объект Interval подписываемым, вызвав для него str():

ax.set_xticklabels([str(c)[1:-1].replace(","," to") for c in out.cat.categories])
...