Найти дубликаты записей с помощью какого-либо поля и изменить значение поля с помощью библиотеки Pandas - PullRequest
0 голосов
/ 01 марта 2020
Week_number   Holiday Description  Qty
38              1        A          5
38              0        A          6
38              0        B          1
38              1        C          1
40              0        A          1

Я хочу найти дубликаты для того же номера недели и описания. Если мы возьмем пример, как указано выше, Week_number 38 и Desciption A, то есть 2 записи. Затем я хочу получить сумму этих 2 кол-во, так что это будет 11. Наконец, объедините эти 2 записи и отобразите сумму кол-во и выходных как 1.

Week_number   Holiday Description  Qty
38              1        A          11
38              0        B          1
38              1        C          1
40              0        A          1

Снова проверьте дубликаты для Week_number 38 и там будет 3 записи этого. И измените Holiday на 1 из всех записей с одинаковым номером недели.

Week_number   Holiday Description  Qty
38              1        A          11
38              1        B          1
38              1        C          1
40              0        A          1

Есть комментарии, как это сделать? Спасибо

1 Ответ

1 голос
/ 01 марта 2020

Посмотрите номер недели, где выходной == 1. Затем преобразуйте оставшиеся 0 в 1, назначив выходной 1 для этого номера недели. Последняя часть заключается в удалении дубликатов на основе подмножества = ['Week_number', 'Description']

df['Qty'] = df.groupby(['Description','Week_number']).Qty.transform('sum')

cond = df.query('Holiday ==1').Week_number.unique()

df['Holiday'] = np.where(df.Week_number.isin(cond),1,df.Holiday)

df = df.drop_duplicates(['Week_number','Description'])

    Week_number Holiday Description  Qty
0       38          1       A        11
2       38          1       B         1
3       38          1       C         1
4       40          0       A         1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...