У меня есть тест df, как это:
df = pd.DataFrame({'A': ['Apple','Apple', 'Apple','Orange','Orange','Orange','Pears','Pears'],
'B': [1,2,9,6,4,3,2,1]
})
A B
0 Apple 1
1 Apple 2
2 Apple 9
3 Orange 6
4 Orange 4
5 Orange 3
6 Pears 2
7 Pears 1
Теперь мне нужно добавить новый столбец с соответствующей разницей в% в столбце «B». Как это возможно. Я не могу заставить это работать.
Я смотрел на
обновить значение столбца pandas groupby (). Last ()
Не уверен, что это относится к моей проблеме.
И это выглядит многообещающе
Pandas Groupby и сумма только в одном столбце
Мне нужно найти и вставить в col maxpercchng (все строки в группе) максимальное изменение col (B) на группу столбцов 'A'.
Итак, я пришел с этим кодом:
grouppercchng = ((df.groupby['A'].max() - df.groupby['A'].min())/df.groupby['A'].iloc[0])*100
и попробуйте добавить его в группу col 'maxpercchng', например, так:
group['maxpercchng'] = grouppercchng
или как то так
df_kpi_hot.groupby(['A'], as_index=False)['maxpercchng'] = grouppercchng
Кто-нибудь знает, как добавить ко всем строкам в группе столбец maxpercchng?