gpt4 book ai didi

python - pandas.DF() 中的列是否单调递增?

转载 作者:太空狗 更新时间:2023-10-29 22:04:07 26 4
gpt4 key购买 nike

我可以使用 is_monotonic 方法检查 pandas.DataFrame() 的索引是否单调递增。但是,我想检查其中一个列值是否严格增加 value(float/integer)?

In [13]: my_df = pd.DataFrame([1,2,3,5,7,6,9])

In [14]: my_df
Out[14]:
0
0 1
1 2
2 3
3 5
4 7
5 6
6 9

In [15]: my_df.index.is_monotonic
Out[15]: True

最佳答案

Pandas 0.19 添加了公共(public) Series.is_monotonic API(以前,这仅在未记录的 algos 模块中可用)。

(已更新)请注意,尽管它的名称是 Series.is_monotonic,但它仅指示序列是否单调递增(相当于使用 Series.is_monotonic_increasing).相反,使用 Series.is_monotonic_decreasing。无论如何,两者都是非严格的,但您可以将它们与 is_unqiue 结合使用获得严格。

例如:

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

您可以使用 apply 在 DataFrame 级别运行它:

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

关于python - pandas.DF() 中的列是否单调递增?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28093365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com