Допустим, у меня есть df:
df = pd.DataFrame([[1, 2, 1], [1, 3, 2], [4, 6, 3], [4, 3, 4], [4, 4, 5]], columns=['A', 'B', 'C'])
A B C
0 1 2 1
1 1 3 2
2 4 6 3
3 4 3 4
4 4 4 5
Я хочу сгруппировать 'A' и выполнить некоторые вычисления и манипуляции с подкадрами 'B', 'C', но я не могу найти, какчтобы сделать это, я нашел, как на только один столбец.Поэтому, если я вызываю каждый из этих подкадров данных SubDF, то, что я пытаюсь сделать:
SubDF = SubDF.sort_values(by=['B','C'], ascending=[False,True])
Обратный столбец C, взять cumsum, а затем снова повернуть, я думаю эточто-то вроде этого:
SubDF['cum_C'] = SubDF.loc[::-1, 'C'].cumsum()[::-1]
Я пытаюсь сделать так, чтобы каждое значение от 'A' до .sort_values (by = ['B', 'C'] возрастало = [False, True]) затемdf.val1.cumsum () Вычислите percertage 'C'
SubDF['per_C'] = 100*SubDF.cum_C/SubDF.C.sum()
и для каждой SubDF получите первую строку, где cum_C ниже 90%, поэтому самый конечный результат будет примерно таким:
df:
A B C cum_C per_C
0 1 2 1 1 33.333
1 2 4 5 9 75.000
Как мне это сделать?
Спасибо,