Привет, я пытаюсь использовать функцию прокатки Pandas, чтобы вычислить разницу качения в таблице ниже. Я пытаюсь создать значения в столбце "Ежемесячные доступные элементы" и никуда не денутся. Пожалуйста помоги!
Item Adds Subtracts Month Monthly Available items
A 71 30 Jan 41
B 19 7 Jan 12
C 68 30 Jan 38
D 34 19 Jan 15
E 180 91 Jan 89
C 58 34 Feb 62
E 222 129 Feb 182
D 26 21 Feb 20
B 65 26 Feb 51
A 62 58 Feb 45
Код Python:
roll_triggers ['Добавляет']. roll (window = 2).apply(lambda x: x [1] - x [0])
Если я правильно понимаю ваш код и комментарии, это будет делать то, что вы хотите:
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
df['Month'] = pd.Categorical(df['Month'], categories = months)
df = df.sort_values(['Item', 'Month'])
df['Net_Items'] = df['Adds'] - df['Subtracts']
df['Monthly_Available_Items'] = df.groupby('Item')['Net_Items'].cumsum()
df = df.reset_index(drop = True)
Он вернется:
Item Adds Subtracts Month Net_Items Monthly_Available_Items
0 A 71 30 Jan 41 41
1 A 62 58 Feb 4 45
2 B 19 7 Jan 12 12
3 B 65 26 Feb 39 51
4 C 68 30 Jan 38 38
5 C 58 34 Feb 24 62
6 D 34 19 Jan 15 15
7 D 26 21 Feb 5 20
8 E 180 91 Jan 89 89
9 E 222 129 Feb 93 182
Сначала преобразуйте столбец месяца в категориальный (поскольку в алфавитном порядке, декабрь - до января и т.д.). Затем вычислите Net_Items
как разницу между Adds
и Subtracts
. Наконец, вычислите кумулятивную сумму для каждого из продуктов.
Предполагая, что январь является первым месяцем, интуиция заключается в том, что было добавлено 71 добавленного Item A
и 30 удалено для общей суммы 31. В следующем месяце было добавлено 62, а 58 было удалено, поэтому общая сумма 4 добавляется к в предыдущем месяце нетто в общей сложности 41 на общую сумму 45.