是否有一种简单的方法可以对相邻列中当前行上方的所有行的值求和?点击下面的图片,看看我要做什么。看到它比解释它容易。
文本说明:我正在尝试创建一个图表,其中B列是A上方所有行的总和或百分比。这样,我可以快速查看数据框中四分位,第三位等的位置。我熟悉百分位功能
但是我不确定我能否使其完全按照我想要的去做。下图以及文字版本:
文本版本
1--1%
1--2%
4--6%
4--10%
2--12%
... 等等到100%。
我需要编写一个for循环吗?
答案 0 :(得分:0)
您可以为此使用cumsum
import numpy as np
import pandas as pd
df = pd.DataFrame(data=dict(x=[13,22,34,21,33,41,87,24,41,22,18,12,13]))
df["percent"] = (100*df.x.cumsum()/df.x.sum()).round(1)
输出:
x percent
0 13 3.4
1 22 9.2
2 34 18.1
3 21 23.6
4 33 32.3
5 41 43.0
6 87 65.9
7 24 72.2
8 41 82.9
9 22 88.7
10 18 93.4
11 12 96.6
12 13 100.0