如何计算 pandas 的累积百分比


您可以使用以下基本语法来计算 pandas DataFrame 的列中值的累积百分比:

 #calculate cumulative sum of column
df[' cum_sum '] = df[' col1 ']. cumsum ()

#calculate cumulative percentage of column (rounded to 2 decimal places)
df[' cum_percent '] = round( 100 *df. cum_sum /df[' col1 ']. sum (), 2 )

以下示例展示了如何在实践中使用此语法。

示例:计算 pandas 之间的累计百分比

假设我们有以下 pandas DataFrame,显示公司连续几年销售的单位数量:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' year ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   ' units_sold ': [60, 75, 77, 87, 104, 134, 120, 125, 140, 150]})

#view DataFrame
print (df)

   year units_sold
0 1 60
1 2 75
2 3 77
3 4 87
4 5 104
5 6 134
6 7 120
7 8 125
8 9 140
9 10 150

接下来,我们可以使用以下代码添加一列,显示累计销售单位数和累计销售单位百分比:

 #calculate cumulative sum of units sold
df[' cum_sum '] = df[' units_sold ']. cumsum ()

#calculate cumulative percentage of units sold
df[' cum_percent '] = round( 100 *df. cum_sum /df[' units_sold ']. sum (), 2 )

#view updated DataFrame
print (df)

   year units_sold cum_sum cum_percent
0 1 60 60 5.60
1 2 75 135 12.59
2 3 77 212 19.78
3 4 87 299 27.89
4 5 104 403 37.59
5 6 134 537 50.09
6 7 120 657 61.29
7 8 125 782 72.95
8 9 140 922 86.01
9 10 150 1072 100.00

我们对累计百分比的解释如下:

  • 第一年销售额占总销售额的5.60%
  • 第 1 年和第 2 年合计占所有销售额的12.59%
  • 第 1 年、第 2 年和第 3 年合计占总销售额的19.78%

等等。

请注意,您只需更改round()函数中的值即可更改显示的小数位数。

例如,我们可以将累积百分比四舍五入到小数点后零位:

 #calculate cumulative sum of units sold
df[' cum_sum '] = df[' units_sold ']. cumsum ()

#calculate cumulative percentage of units sold
df[' cum_percent '] = round( 100 *df. cum_sum /df[' units_sold ']. sum (), 0 )

#view updated DataFrame
print (df)

   year units_sold cum_sum cum_percent
0 1 60 60 6.0
1 2 75 135 13.0
2 3 77 212 20.0
3 4 87 299 28.0
4 5 104 403 38.0
5 6 134 537 50.0
6 7 120 657 61.0
7 8 125 782 73.0
8 9 140 922 86.0
9 10 150 1072 100.0

累积百分比现在四舍五入到小数点后零位。

其他资源

以下教程解释了如何在 Python 中执行其他常见操作:

如何在 Python 中创建频率表
如何在 Python 中计算相对频率

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注