pandas dataframe如何通过比较列与前值新增计数列col_new
实现方案
核心逻辑是对col_exist列中等于'A'的结果做累加,刚好匹配你的计数规则,一行代码就能实现:
df['col_new'] = df['col_exist'].eq('A').cumsum()
代码说明
df['col_exist'].eq('A')逐行判断col_exist的值是否为'A',返回布尔序列(是'A'则为True,否则为False)cumsum()是累加函数,布尔值参与数值计算时True会被识别为1,False识别为0,刚好实现遇到'A'计数加1、遇到'B'计数不变的要求
完整测试代码
你可以直接运行下面的代码验证示例效果:
import pandas as pd # 构造示例DataFrame,替换为你自己的df即可 df = pd.DataFrame({ 'col_exist': ['A', 'A', 'A', 'B', 'A', 'B', 'B', 'A', 'B'] }) # 新增col_new列 df['col_new'] = df['col_exist'].eq('A').cumsum() # 打印结果 print(df)
运行后输出结果和你给出的示例完全一致。
内容的提问来源于stack exchange,提问作者konstantin
相关产品推荐
相关产品推荐

