Я это DataFrame (это просто пример, а не реальные данные):Вычислить дельта от значений в dataframe
In [1]: import pandas as pd
my_data = [{'client_id' : '001', 'items' : '10', 'month' : 'Jan'},
{'client_id' : '001', 'items' : '20', 'month' : 'Feb'},
{'client_id' : '001', 'items' : '30', 'month' : 'Mar'},
{'client_id' : '002', 'items' : '30', 'month' : 'Jan'},
{'client_id' : '002', 'items' : '20', 'month' : 'Feb'},
{'client_id' : '002', 'items' : '15', 'month' : 'Mar'},
{'client_id' : '003', 'items' : '10', 'month' : 'Jan'},
{'client_id' : '003', 'items' : '20', 'month' : 'Feb'},
{'client_id' : '003', 'items' : '15', 'month' : 'Mar'}]
df = pd.DataFrame(my_data)
In [2]: df
Out [2]:
client_id month items
0 001 Jan 10
1 001 Feb 20
2 001 Mar 30
3 002 Jan 30
4 002 Feb 20
5 002 Mar 15
6 003 Jan 10
7 003 Feb 20
8 003 Mar 15
То, что я хочу, чтобы вычислить дельту закупаемых для каждой пары месяцев. То есть, например, клиент «001» купил еще 10 предметов в феврале (20), чем в январе (10). Клиент «002», купил -10 штук (20 февраля, 30 января). Окончательный DataFrame будет выглядеть так:
In [3]: delta_df
Out [3]:
client_id delta_items_feb delta_items_mar
0 001 10 10
1 002 -10 -5
2 003 10 -5
Любые мысли о том, как это сделать?
Se ems, как мы нашли одно и то же решение (pivot + diff), но в другом порядке;;) – elyase
Итак, мы сделали :-) Я думаю, что я изначально пробовал 'groupby', но не мог подумать, как лучше всего использовать его здесь, так что это приятно видеть ваше решение. –