擅长:python、mysql、java
<p>您可以使用<code>.shift()</code>移动列,并使用<code>any</code>检查差异。例如,给定一个像</p>
<pre><code>>>> df
Bid Ask
1 1.0 1.5
2 1.0 1.5
3 1.0 1.5
4 1.5 2.0
5 1.5 2.0
6 2.0 2.5
7 2.0 2.5
8 2.0 3.0
>>> df[(df != df.shift()).any(axis=1)]
Bid Ask
1 1.0 1.5
4 1.5 2.0
6 2.0 2.5
8 2.0 3.0
</code></pre>
<hr/>
<p>我们一步一步地向下移动1:</p>
<pre><code>>>> df.shift()
Bid Ask
1 NaN NaN
2 1.0 1.5
3 1.0 1.5
4 1.0 1.5
5 1.5 2.0
6 1.5 2.0
7 2.0 2.5
8 2.0 2.5
</code></pre>
<p>我们将数据帧与其移位版本进行比较:</p>
<pre><code>>>> df != df.shift()
Bid Ask
1 True True
2 False False
3 False False
4 True True
5 False False
6 True True
7 False False
8 False True
</code></pre>
<p>然后我们做一个级数,只有其中一个是真的,并且一行与下一行不同时,这个级数才是真的:</p>
<pre><code>>>> (df != df.shift()).any(axis=1)
1 True
2 False
3 False
4 True
5 False
6 True
7 False
8 True
dtype: bool
</code></pre>