我可以使用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_monotonicapi(以前,只有在未记录的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/

10-12 18:11