[英]Pandas Dataframe … how to incrementally add values of rows?
是否有一種簡單的方法可以對相鄰列中當前行上方的所有行的值求和? 單擊下面的圖片查看我正在嘗試制作的內容。 看到它比解釋它更容易。
文字說明:我正在嘗試創建一個圖表,其中 B 列是 A 中位於其上方的所有行的總和或總數的百分比。 這樣我就可以快速可視化數據框中的四分位數、第三位數等位置。 我熟悉百分位函數
但我不確定我能否讓它完全按照我的意願去做。 下圖以及文字版:
文字版
1--1%
1--2%
4--6%
4--10%
2--12%
... 以此類推到 100%。
我需要寫一個 for 循環來做到這一點嗎?
您可以為此使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.