pandas如何统计DataFrame指定列中连续1的最大出现次数
Pandas 计算flag列连续1最大出现次数
核心思路
利用连续相同值的分组特性实现统计:
- 对比当前行与上一行的flag值,不同则生成新的分组标记
- 累加分组标记为连续相同的flag值分配相同的组ID
- 筛选值为1的分组统计长度,取最大值即为结果
完整实现代码
import pandas as pd # 示例输入数据 df = pd.DataFrame({'flag':[1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1]}) # 计算连续1最大次数,加or 0处理全为0的边界情况 max_count = df.groupby((df['flag'] != df['flag'].shift()).cumsum())['flag'].sum().max() or 0 # 生成要求的输出格式 df_out = pd.DataFrame({'max_count': [max_count]})
输出结果
运行上述代码后得到的df_out与预期完全一致:
max_count 0 3
内容的提问来源于stack exchange,提问作者Nickel
相关产品推荐
相关产品推荐

