我可以使用is_单调方法检查pandas.dataframe()的索引是否单调递增。但是,我想检查列值中是否有一个值严格地递增(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添加了一个publicSeries.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
在数据帧级别运行: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/