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

如何在Pandas中基于初始值与百分比变化生成新累计列?

Pandas 实现 Items 累计列计算

问题场景

你有一个包含items列和percentage列的初始DataFrame,需要生成累计items列——这种文本累计拼接的效果在Excel/Google Sheets里很容易实现,但在Pandas中不知道怎么操作。

核心解决方案

Pandas的cumsum()方法支持直接对字符串列进行累计拼接,这是最简洁高效的实现方式。


1. 基础实现(按原顺序累计)

先构造模拟的初始DataFrame:

import pandas as pd

df = pd.DataFrame({
    'items': ['A', 'B', 'C', 'D'],
    'percentage': [0.2, 0.3, 0.1, 0.4]
})

执行以下代码生成累计列:

# 直接对items列调用cumsum(),自动完成字符串累计拼接
df['累计items'] = df['items'].cumsum()

执行后得到的结果:

itemspercentage累计items
A0.2A
B0.3AB
C0.1ABC
D0.4ABCD

2. 进阶场景(按百分比排序后累计)

如果需要先按percentage排序再生成累计列,可先排序再调用cumsum():

# 按百分比降序排序(升序则把ascending设为True)
df_sorted = df.sort_values('percentage', ascending=False)
# 生成排序后的累计列
df_sorted['累计items'] = df_sorted['items'].cumsum()

# 若要保留原DataFrame的原始顺序,通过合并还原
df = df.merge(df_sorted[['items', '累计items']], on='items', how='left')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:40:00