如何让 pandas.DataFrame.rank 从 0 开始?

怎么做

pandas.DataFrame.rank(pct=True)

从0开始?

例如,如果我在一列中有 11 个数字,rank将产生0.0909, 0.1818, ..., 1.0000. 我希望它屈服0.0000, 0.1000, ..., 1.0000

有没有简单的方法来实现这一目标?


蝴蝶刀刀
浏览 165回答 2
2回答

月关宝盒

您可以减去1/n然后归一化(n-1)/n(其中n是列中的项目数)。您的情况的代码,d = {'col1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]}df = pd.DataFrame(d)count = df.count()[0](df.rank(pct=True) - 1/count) * count/(count-1)上面的代码产生,    col10    0.01    0.12    0.23    0.34    0.45    0.56    0.67    0.78    0.89    0.910   1.0

炎炎设计

使用 Pandas 方法排名然后减去 1d = {'col1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]}df = pd.DataFrame(d)df['col1'].rank(method='first')-1返回0      0.01      1.02      2.03      3.04      4.05      5.06      6.07      7.08      8.09      9.010    10.0Name: col1, dtype: float64
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python