Панда слияния столбец дубликат и сумма значения - PullRequest
0 голосов
/ 07 октября 2019

У меня есть следующие данные в pandas df:

quantity    color

1           White
3           White
1           Black
2           Black

Мне нужно сгруппировать дубликаты и получить сумму их количеств:

quantity    color

4           White
3           Black

Я пробовал следующий код длясначала отсортируйте по количеству, затем с помощью группирования объедините дубликаты и получите сумму.

df1 = df.sort_values(by=['quantity','color'], ascending=False)
df2 = df1.groupby(['color']).sum()
print(df2)

Я получаю следующий вывод:

White    13
Black    12

Как вы можете видеть, он не дает мне сумму суммы, он просто перечисляет эти значения рядом вследующий столбец (1,3) и (1,2) для каждого цвета.

1 Ответ

1 голос
/ 08 октября 2019

Я считаю, что в приведенном вами примере должны быть пустые места, и именно поэтому astype(int) не работает. Использование pd.to_numeric и передача errors='coerce' обеспечит преобразование всех строковых значений в np.Nan, с которыми легко справиться при использовании groupby

import pandas as pd
a = {'quantity':[1,3,1,2],'color':['White','White','Black','Black']}
df = pd.DataFrame(a)
df['quantity'] = pd.to_numeric(df['quantity'],errors='coerce')
print(df.groupby('color')['quantity'].sum())

Вывод:

color
Black    3
White    4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...