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

按col3分组计算col2的pct_change并生成col4列

Pandas按分组计算列的百分比变化生成新列

核心实现逻辑

按col3的取值分组,对每组内的col2列计算相邻行的百分比变化,再将每组的第一个值(默认是NaN)替换为0,最终生成col4列。

代码示例

1. 构建示例数据

import pandas as pd

# 还原你提供的示例数据
data = {
    '创建日期': ['2021-02-17 00:00:00', '2021-02-17 00:00:00', '2021-10-05 00:00:00',
              '2021-10-05 00:00:00', '2021-09-15 00:00:00', '2021-10-02 00:00:00',
              '2021-10-05 00:00:00'],
    'col2': [10.55, 12.55, 14.55, 10.55, 9.45, 8.65, 8.65],
    'col3': [0, 0, 0, 0, 1, 1, 1]
}
df = pd.DataFrame(data)

2. 执行分组计算

# 按col3分组计算百分比变化,替换NaN为0得到col4
df['col4'] = df.groupby('col3')['col2'].pct_change().fillna(0)
# 保留4位小数和手动计算的示例值对齐
df['col4'] = df['col4'].round(4)

最终结果

执行后得到的DataFrame与你提供的示例完全匹配:

创建日期col2col3col4
2021-02-17 00:00:0010.5500.0000
2021-02-17 00:00:0012.5500.1895
2021-10-05 00:00:0014.5500.1593
2021-10-05 00:00:0010.550-0.2749
2021-09-15 00:00:009.4510.0000
2021-10-02 00:00:008.651-0.0847
2021-10-05 00:00:008.6510.0000

(注:示例中第6行col4为-0.08465,代码中round(4)后为-0.0847,属于合理的近似对齐)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:21:25