Как преобразовать значения столбца в значения в интервале от -1 до 1?
Есть фрейм данных со значением столбца Disp от 0 до 100.
Как преобразовать значения в интервале от -1 до 1, 0 = 50?
Пример данных (файл с данными):
Date Disp
15 20160902 19.96316633
16 20160902 22.94098362
17 20160902 33.07775348
18 20160902 41.38989632
19 20160902 58.51188269
20 20160902 75.61025495
21 20160902 82.37119176
22 20160902 84.99476836
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Ничего же сложного:
import pandas as pd
import numpy as np
# генерация данных для примера
df = pd.DataFrame({'Disp': np.random.rand(100) * 100})
print(df.Disp.min(), df.Disp.max())
# пересчет в другой диапазон
df['Disp1'] = 1 - df['Disp'] / 50
print(df.Disp1.min(), df.Disp1.max())
df
Вывод:
0.44374503539753585 98.15425602284107
-0.9630851204568214 0.9911250992920493
Disp Disp1
0 51.584816 -0.031696
1 60.897385 -0.217948
2 35.293204 0.294136
3 32.849050 0.343019
4 70.642605 -0.412852
... ... ...
Автор решения: MaxU
→ Ссылка
Можно воспользоваться функцией sklearn.preprocessing.minmax_scale():
from sklearn.preprocessing import minmax_scale
df = pd.read_csv(Path.home() / "Downloads/ppppppp.csv", index_col=0)
df["Disp_scaled"] = minmax_scale(df["Disp"], feature_range=(-1, 1))