<ul>
<li><code>groupby()</code>序列发生变化的地方</li>
<li>使用<code>count()</code>获取每个序列的长度</li>
<li>然后是<code>max()</code>长度序列</li>
</ul>
<pre><code>import pandas as pd
df = pd.DataFrame({"seq":[True,True,True,True,False,True,True,True,True,True,True,False,True]})
df.groupby((df["seq"]!=df["seq"].shift()).cumsum()).count().max()
</code></pre>
<h3>输出</h3>
<pre><code>seq 6
dtype: int64
</code></pre>
<h3>逐行而不是单列</h3>
<ul>
<li>将<code>agg()</code>函数从<code>count()</code>更改为<code>sum()</code>,因此只考虑<strong>True</strong></li>
</ul>
<pre><code>import io
df = pd.read_csv(io.StringIO(""" diff0 diff1 diff2 diff3 diff4 diff5 diff6 diff7 diff8 diff9
0 True True True False True False False True False True
1 False False False False False False False False False False
2 False False False False False False False False False False
3 True False False False True False True False False False
4 True False True False False True False False False False"""), sep="\s+")
dft = df.T
df["maxslen"] = [dft.groupby((dft[c]!=dft[c].shift()).cumsum()).sum().max()[c] for c in dft.columns]
</code></pre>
<h3>输出</h3>
<div class="s-table-container">
^{tb1}$
</div>