Преобразование функции pandas df.duulated в эквивалент PolarsPython

Программы на Python
Ответить
Anonymous
 Преобразование функции pandas df.duulated в эквивалент Polars

Сообщение Anonymous »

Это код, здесь я вычисляю столбец с именем Total_SKU_Count, я хочу, чтобы значение столбца было равно 1 для первых вхождений уникального подмножества, иначе 0.
Давайте рассмотрим этот фиктивный набор данных,

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

import pandas as pd

data = {
'store': ['A', 'A', 'B', 'B', 'C', 'C', 'A', 'B', 'C'],
'item': ['X', 'Y', 'X', 'Y', 'X', 'Y', 'X', 'Y', 'X'],
'date': ['2023-01-01', '2023-01-01', '2023-01-01', '2023-01-01', '2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02', '2023-01-02'],
'Sold_Qty_LY': [10, 20, 15, 25, 30, 40, 10, 15, 20],
}

df = pd.DataFrame(data)
Теперь о приведенном ниже подмножестве

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

subset = ['store', 'item', 'date']
df['Total_SKU_Count'] = (~df.duplicated(subset=subset, keep='first')).astype(int)
Это результат

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

  store item        date  Sold_Qty_LY  Total_SKU_Count
0     A    X  2023-01-01           10                1
1     A    Y  2023-01-01           20                1
2     B    X  2023-01-01           15                1
3     B    Y  2023-01-01           25                1
4     C    X  2023-01-01           30                1
5     C    Y  2023-01-01           40                1
6     A    X  2023-01-02           10                1
7     B    Y  2023-01-02           15                1
8     C    X  2023-01-02           20                1

Для этого

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

subset = ['store', 'item']
df['Total_SKU_Count'] = (~df.duplicated(subset=subset, keep='first')).astype(int)
Это результат

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

  store item        date  Sold_Qty_LY  Total_SKU_Count
0     A    X  2023-01-01           10                1
1     A    Y  2023-01-01           20                1
2     B    X  2023-01-01           15                1
3     B    Y  2023-01-01           25                1
4     C    X  2023-01-01           30                1
5     C    Y  2023-01-01           40                1
6     A    X  2023-01-02           10                0
7     B    Y  2023-01-02           15                0
8     C    X  2023-01-02           20                0

Если вы посмотрите на более поздние выходные данные, вы сможете ясно понять проблему.
Я нашел это решение в stackoverflow:
  • Полярные — удалить повторяющуюся строку на основе подмножества столбцов, но оставить в первую очередь
Но в моем случае я не могу удалить ни одной строки, и это для меня бесполезно. Поскольку поляры для меня новы, мне трудно решить эту проблему. Пожалуйста, помогите мне, если есть способ добиться этого. Ваша поддержка очень ценна.

Подробнее здесь: https://stackoverflow.com/questions/777 ... equivalent
Ответить

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

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

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

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

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