如何在列熊猫中获得连续 1 的最大计数

Nic*_*kel 2 python numpy pandas pandas-groupby

我有一个带有 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]})
Run Code Online (Sandbox Code Playgroud)

Shu*_*rma 5

解决方案 pandas

m = df['flag'].eq(1)
max(m[m].groupby((~m).cumsum()).sum())
Run Code Online (Sandbox Code Playgroud)

解决方案 itertools.groupby

from itertools import groupby

max(sum(g) for k, g in groupby(df['flag']) if k == 1)
Run Code Online (Sandbox Code Playgroud)

结果

3
Run Code Online (Sandbox Code Playgroud)