我经常使用pandas,并经常执行类似以下代码的程序:
df['var_rank'] = df['var'].rank(pct=True)
print( df.var_rank.max() )
我经常得到大于1的值,无论我保留还是删除'na'值。这很容易解决(只需用最大排名的值进行除法),所以我不需要一个变通方法。我只是好奇为什么会发生这种情况,而且在网上没有找到任何线索。
有人知道为什么会这样吗?
这里有一些非常简单的示例数据(Dropbox链接 - 采用Pickled Pandas Series格式)。
我从df.rank(pct=True).max()
中获得1.0156的值。我曾有其他数据高达4或5。我通常使用相当混乱的数据。