擅长:python、mysql、java
<p>您可以浏览所有按1移位并成对压缩的列:</p>
<pre><code>def func(x):
return any(x1 == 'AAA' and x2 == 'BBB' for x1, x2 in
zip(x.slice_shift(1), x.slice_shift(-1)))
print(df[df.apply(func, axis=1)])
</code></pre>
<p>对于此数据帧:</p>
<pre><code> COL_1 COL_2 COL_3 COL_4 COL_5
ID
1 AAA BBB CCC DDD 10
2 DDD AAA CCC BBB 20
3 BBB AAA DDD CCC 30
4 CCC AAA BBB DDD 40
</code></pre>
<p>输出如下所示:</p>
<pre><code> COL_1 COL_2 COL_3 COL_4 COL_5
ID
1 AAA BBB CCC DDD 10
4 CCC AAA BBB DDD 40
</code></pre>
<p><code>x.slice_shift(1)</code>等价于<code>x[1:]</code>,但不复制数据。你知道吗</p>