Как сделать так, чтобы pandas.DataFrame.rank начинался с 0? - PullRequest
0 голосов
/ 10 октября 2018

Как заставить

pandas.DataFrame.rank(pct=True)

начинать с 0?

Например, если у меня в столбце 11 чисел, rank даст 0.0909, 0.1818, ..., 1.0000.Я хочу, чтобы это дало 0.0000, 0.1000, ..., 1.0000.

Есть ли простой способ добиться этого?

1 Ответ

0 голосов
/ 10 октября 2018

Вы можете вычесть 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)

Выше кода дает,

    col1
0    0.0
1    0.1
2    0.2
3    0.3
4    0.4
5    0.5
6    0.6
7    0.7
8    0.8
9    0.9
10   1.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...