#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 ~