При применении Series.clip к упорядоченным категориальным данным я получаю неправильный результат.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 При применении Series.clip к упорядоченным категориальным данным я получаю неправильный результат.

Сообщение Anonymous »

pandas 1.5.1
numpy 1.23.4
python 3.10.7
Предположим, у нас есть ряд упорядоченных категориальных данных:

Код: Выделить всё

s = pd.Series(['zero','one','two','three','four','five','six'], dtype='category')
s = s.cat.reorder_categories(['zero','one','two','three','four','five','six'], ordered=True)
print(s)
Вот результат выполнения приведенного выше кода:

Код: Выделить всё

0     zero
1      one
2      two
3    three
4     four
5     five
6      six
dtype: category
Categories (7, object): ['zero' < 'one' < 'two' < 'three' < 'four' < 'five' < 'six']
Если я применю клип только с одним параметром low= или Upper=, я получу ожидаемый результат. Но если они оба переданы, результат будет несколько странным:

Код: Выделить всё

df = pd.concat([s, s.clip(lower='two'), s.clip(upper='four'), s.clip(lower='two', upper='four')], axis=1)
print(df)
Вывод, обратите внимание на последний столбец:

Код: Выделить всё

       0      1      2     3
0   zero    two   zero  four
1    one    two    one  four
2    two    two    two  four
3  three  three  three   two
4   four   four   four   two
5   five   five   four   two
6    six    six   four   two
Я ожидал увидеть в последнем столбце серию ['два','два','два','три','четыре','четыре',четыре']< /code>, а не тот, что указан выше.
Также я заметил, что замена значений для low=..., Upper=... не дает результата. изменить результат. См.:

Код: Выделить всё

pd.concat([s.clip(lower='two',upper='four'), s.clip(lower='four',upper='two')], axis=1)
с выводом:

Код: Выделить всё

      0     1
0  four  four
1  four  four
2  four  four
3   two   two
4   two   two
5   two   two
6   two   two
Почему отсечение упорядоченных категориальных данных ведет себя так?

P.S. Отчет об ошибке на GitHub: https://github.com/pandas-dev/pandas/issues/49217

Подробнее здесь: https://stackoverflow.com/questions/741 ... ong-result
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»