НДО
Покупка
Страна< /th>
0
< td>3
Великобритания
1
3
Великобритания
1
3
Великобритания
1
3
США
23
США
Я хочу разделить данные на группы по NDO, например 0 дней, 1–5 дней, 5–10 дней, 50–100 дней, и добавить дополнительный столбец «NDOGroup», чтобы я мог затем создайте сводную таблицу с помощью NDOGroup и, в конечном итоге, тепловую карту.
Для этого я использовал следующий код:
Код: Выделить всё
bins = [-1,5,10,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101]
labels = [f'{a0}-{a1 - 1}' for a0, a1 in zip(bins[:-2], bins[1:-1])] + [f'≥{bins[-2]}']
df['NDOGroup'] = pd.cut(df['NDO'], bins=bins, labels=labels, right=True)
countrypt = df.pivot_table(index = 'NDOGroup',columns = 'Country', values ='Purch', aggfunc='sum', observed=False)
plt.figure(figsize = (15,9))
sns.heatmap(countrypt, cmap = 'viridis', vmin=0, linewidths=0.5, linecolor='black')

и когда я проверяю данные, я вижу, что для NDO=0 NDOGroup = NaN
NDO
Покупка< /th>
Страна
NDOGroup
0
3
Великобритания
Нан
1
3
Великобритания
0–4
1
3
Великобритания
0-4
1
3
США
0-4
2
3
США
0–4
Я пробовал разные индексации в корзинах, например. [-1,0,5], [-1,4,5], но не удается отобразить правильные группы.
Это проблема с индексацией? Или есть более чистый способ исправить это, чтобы я получил таблицу, как показано ниже:
NDO
Купить
СтранаNDOGroup
0< /td>
3
Великобритания
0
1
3
Великобритания
1–5
3
3
Великобритания
1–5
4
3
США
1–5
5
3
США
1-5
6
3
США
6–10
12
3< /td>
США
11–15
< /таблица>
Подробнее здесь: https://stackoverflow.com/questions/790 ... ize-groups