You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python计算DataFrame中各产品NPI占总NPI的比例?

计算每个产品NPI占总NPI的比例

假设你的DataFrame包含产品和NPI两列,示例结构如下:

import pandas as pd

# 示例数据
data = {
    '产品': ['A', 'A', 'B', 'B', 'B', 'C'],
    'NPI': [10, 20, 15, 5, 25, 30]
}
df = pd.DataFrame(data)

实现步骤:

  • 第一步:计算每个产品的NPI总和
    用groupby按产品分组后,对NPI列求和:
product_npi_sum = df.groupby('产品')['NPI'].sum()

执行后会得到一个Series,索引为产品名称,值为对应产品的NPI总和。

  • 第二步:计算所有产品的总NPI
    直接对原DataFrame的NPI列求和即可:
total_npi = df['NPI'].sum()
  • 第三步:计算每个产品占总NPI的比例
    将每个产品的NPI总和除以总NPI:
product_npi_ratio = product_npi_sum / total_npi

完整代码示例

import pandas as pd

# 构造示例DataFrame
data = {
    '产品': ['A', 'A', 'B', 'B', 'B', 'C'],
    'NPI': [10, 20, 15, 5, 25, 30]
}
df = pd.DataFrame(data)

# 计算每个产品NPI总和
product_npi_sum = df.groupby('产品')['NPI'].sum()
# 计算总NPI
total_npi = df['NPI'].sum()
# 计算占比
product_npi_ratio = product_npi_sum / total_npi

# 输出结果
print("每个产品的NPI总和:")
print(product_npi_sum)
print("\n每个产品NPI占总NPI的比例:")
print(product_npi_ratio)

执行后输出:

每个产品的NPI总和:
产品
A    30
B    45
C    30
Name: NPI, dtype: int64

每个产品NPI占总NPI的比例:
产品
A    0.30
B    0.45
C    0.30
Name: NPI, dtype: float64

内容的提问来源于stack exchange,提问作者user20602598

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 18:32:40