Как определить (и назвать) интервалы для функции pandas .cut? - PullRequest
1 голос
/ 05 марта 2020

Я хочу использовать функцию pandas.cut() в сочетании с определенными интервалами для сортировки данных в этих интервалах. Я также хотел бы дать такие имена интервалов, как: маленький, средний и высокий. Я попытался сделать это с помощью следующего кода:

import pandas as pd

CO_simplified = pd.IntervalIndex.from_tuples([(0, 200), (200,250 ), (300, 1000)]) #small,moderate,high
df_dtc_test= pd.DataFrame()
df_dtc_test["CO_simp"] = pd.cut([122,232,333,324,533], len(CO_simplified), labels=CO_simplified)
print(df_dtc_test)

С выводом:

       CO_simp
0     (0, 200]
1     (0, 200]
2   (200, 250]
3   (200, 250]
4  (300, 1000]

Но это не то, что я ожидал, первый номер индекса мне кажется правильным, но Второй порядковый номер также упорядочен в группе (0,200), но заданное значение для второго указателя равно 232, что находится за пределами этого интервала. Помимо ложного упорядочения, я хотел бы заменить, например, (0, 200) на «маленький».

РЕДАКТИРОВАТЬ: Моя проблема частично решена (см. Ниже), моя единственная проблема заключается в том, как я могу заменить интервалы с имена.

Кто-нибудь знает, как я могу сделать это правильно?

1 Ответ

0 голосов
/ 05 марта 2020

Для правильного заказа:

Используйте

df_dtc_test["CO_simp"] = pd.cut([122,232,333,324,533], CO_simplified, labels=CO_simplified)

вместо

df_dtc_test["CO_simp"] = pd.cut([122,232,333,324,533], len(CO_simplified), labels=CO_simplified)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...