如何在列熊猫中获得连续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


以上是如何在列熊猫中获得连续1的最大计数的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>