如何在列熊猫中获得连续1的最大计数
我有一个带有 Flag1 列的数据框,我想检查列标志值 1 是否连续出现最多次数
这是数据帧和输出格式
df = pd.DataFrame({'flag':[1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1]})
df_out = pd.DataFrame({'max_count':[3]})
回答
解决方案 pandas
m = df['flag'].eq(1)
max(m[m].groupby((~m).cumsum()).sum())
解决方案 itertools.groupby
from itertools import groupby
max(sum(g) for k, g in groupby(df['flag']) if k == 1)
结果
3