Как добавить общий доход в зависимости от категории - PullRequest
0 голосов
/ 21 мая 2019

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

enter image description here

Я хочу сгруппировать и суммировать доходы своих клиентов по категориям

Первый: я хочу сгруппировать доходы клиентов по месяцам

Второе: после того, как доход клиента сгруппирован по месяцам, я хочу сгруппировать его по импорту или экспорту

В-третьих: я хочу сгруппировать доходы клиентов на основе: «начисления, проценты и стоимость»

Далее: я хочу добавить общий доход клиента на основе «начислений, процентов и стоимости»

Мои ожидаемые

enter image description here

это мой последний код

df = df.groupby ("[информация", "имя"]). Agg ("сумма"

Я так запутался, "слияния и ячейки" в питоне и сумма на основе категории

1 Ответ

1 голос
/ 21 мая 2019

Вы можете использовать pivot_table, который обладает большой гибкостью:

In [11]: df
Out[11]:
  Month   Name      Info   Ex/Im  Income
0   Jan  Alice    charge  export     100
1   Jan  Alice  interest  import      10
2   Jan    Bob      cost  export     200
3   Feb  Alice    charge  export     100
4   Jan    Bob      cost  export     200

In [12]: df.pivot_table(index="Name", columns=["Month", "Ex/Im", "Info"], values="Income", aggfunc='sum')
Out[12]:
Month    Feb    Jan
Ex/Im export export          import
Info  charge charge   cost interest
Name
Alice  100.0  100.0    NaN     10.0
Bob      NaN    NaN  400.0      NaN

In [13]: df.pivot_table(index="Name", columns=["Month", "Ex/Im", "Info"], values="Income", aggfunc='sum', fill_value=0)
Out[13]:
Month    Feb    Jan
Ex/Im export export        import
Info  charge charge cost interest
Name
Alice    100    100    0       10
Bob        0      0  400        0
...