pandas基于flag列条件为新增final列递增值的实现问题
实现方案
核心逻辑:你的需求本质是给temp_1列叠加一个永久生效的累加增量,每遇到一次flag=1,增量就+1,这个增量刚好可以通过flag列的累积求和得到,直接将两部分相加即可得到final列。
完整实现代码如下:
import pandas as pd # 构造示例DataFrame data = { 'temp_1': [1, 1, 1, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6], 'flag': [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0] } df = pd.DataFrame(data) # 计算final列 df['final'] = df['temp_1'] + df['flag'].cumsum() # 输出验证结果 print(df)
df['flag'].cumsum()会逐行累计flag列的数值,每遇到一个1,后续所有行的累计结果都会比之前多1,完全匹配你要求的增量规则,运行后输出结果和你给出的预期完全一致。
内容的提问来源于stack exchange,提问作者Ash
相关产品推荐
相关产品推荐

