我有一个带有索引的香草熊猫数据框。我需要检查索引是否已排序。最好不要再次排序。
例如,我可以通过 index.is_unique() 测试索引以查看它是否唯一 是否有类似的测试排序方法?
怎么样:
df.index.is_monotonic
如果sort
都允许,请尝试
all(df.sort_index().index == df.index)
如果没有,请尝试
all(a <= b for a, b in zip(df.index, df.index[1:]))
第一个更具可读性,而第二个具有较小的时间复杂度。
添加我刚刚找到的另一种方法。与第二个类似,但比较被否决
all(df.index[:-1] <= df.index[1:])
对于非指数:
df.equals(df.sort())
只是为了完整起见,这将是检查数据帧索引是否单调递增且唯一的过程,如果不是,则使其为:
if not (df.index.is_monotonic_increasing and df.index.is_unique):
df.reset_index(inplace=True, drop=True)
注意即使有重复的索引
df.index.is_monotonic_increasing
也会返回,所以它必须用.True
df.index.is_unique