Как суммировать значения вместо создания двоичных значений при создании манекенов панд?

#python #pandas

Вопрос:

У меня есть фрейм данных

 Month      | Acct_id| Sku    | Cost $
2020-01-01 |1       |book    |10
2020-01-02 |2       |phone   |100
2020-01-01 |3       |book    |5
 

Теперь я хочу создать манекены «Артикул», но вместо двоичных значений я хочу, чтобы значения были суммой «Стоимости» и уникального количества учетных записей, как это:

 Month      | book   | phone | total_accounts
2020-01-01 | $15    | $0     | 2
2020-01-02 | $0     | $100   | 1
 

Я использую

 dummies=df.set_index('Month')['Sku'].str.get_dummies().sum(level=0).reset_index()
 

Но вывод дает только двоичные значения, а также вообще НЕ захватывает столбец затрат и счетов! Как мне это настроить?

Ответ №1:

Основная идея здесь заключается в том , чтобы groupby и pivot , однако, с unstack

 out = df.groupby(['Month','Sku']).
      agg(nan= ('Cost


Комментарии:

1. почему мы распаковываем вещи только для "книг"?

2. @titu84hh это имя , которое я присвоил, когда агг, теперь измените на nan ~

,'sum'),total_accounts= ('Acct_id','nunique')).
set_index('total_accounts',append=True)['nan'].unstack(level='Sku',fill_value=0).reset_index()
Out[35]:
Sku Month total_accounts book phone
0 2020-01-01 2 15 0
1 2020-01-02 1 0 100

Комментарии:

1. почему мы распаковываем вещи только для «книг»?

2. @titu84hh это имя , которое я присвоил, когда агг, теперь измените на nan ~