<p><strong>Pandas 0.19</strong>添加了一个公共的<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.is_monotonic.html" rel="noreferrer">^{<cd1>}</a>API(以前,这只在未记录的<code>algos</code>模块中可用)。</p>
<p><strong>(已更新)</strong>请注意,尽管有其名称,<code>Series.is_monotonic</code>仅指示序列是否单调地<em>递增</em>(相当于使用<code>Series.is_monotonic_increasing</code>)。相反,使用<code>Series.is_monotonic_decreasing</code>。
无论如何,两者都是非严格的,但是您可以将它们与<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.is_unique.html" rel="noreferrer">^{<cd6>}</a>组合以获得严格性。</p>
<p>例如:</p>
<pre><code>my_df = pd.DataFrame([1,2,2,3], columns = ['A'])
my_df['A'].is_monotonic # non-strict
Out[1]: True
my_df['A'].is_monotonic_increasing # equivalent to is_monotonic
Out[2]: True
(my_df['A'].is_monotonic_increasing and my_df['A'].is_unique) # strict
Out[3]: False
my_df['A'].is_monotonic_decreasing # Other direction (also non-strict)
Out[4]: False
</code></pre>
<p>您可以使用<code>apply</code>在数据帧级别运行它:</p>
<pre><code>my_df = pd.DataFrame({'A':[1,2,3],'B':[1,1,1],'C':[3,2,1]})
my_df
Out[32]:
A B C
0 1 1 3
1 2 1 2
2 3 1 1
my_df.apply(lambda x: x.is_monotonic)
Out[33]:
A True
B True
C False
dtype: bool
</code></pre>