Отображение процентного изменения в строковое описание в Pandas или Numpy - PullRequest
1 голос
/ 20 июня 2020

У меня есть следующий фрейм данных:

        date   price       pct
0   2020/6/1   6.000       NaN
1   2020/6/2   3.000 -0.500000
2   2020/6/3   4.000  0.333333
3   2020/6/4  -1.000 -1.250000
4   2020/6/5  -1.025  0.025000
5   2020/6/6   3.000 -3.926829
6   2020/6/7   3.000  0.000000
7   2020/6/8  15.000  4.000000
8   2020/6/9   2.000 -0.866667
9  2020/6/10   2.500  0.250000

Теперь я хотел бы создать новый столбец pct_desc для сопоставления значений из pct со строковым описанием pct на основе следующего условия:

(-float(inf), -1] ---> severe decrease
(-1, -0.5]  ---> decrease
(-0.5, 0.5] ---> stable
(0.5, 1] ---> increase
(1, float(inf)]  ---> severe increase

Ожидаемый результат будет таким:

        date   price       pct         pct_desc
0   2020/6/1   6.000       NaN              NaN
1   2020/6/2   3.000 -0.500000         decrease
2   2020/6/3   4.000  0.333333           stable
3   2020/6/4  -1.000 -1.250000  severe decrease
4   2020/6/5  -1.025  0.025000           stable
5   2020/6/6   3.000 -3.926829  severe decrease
6   2020/6/7   3.000  0.000000           stable
7   2020/6/8  15.000  4.000000  severe increase
8   2020/6/9   2.000 -0.866667         decrease
9  2020/6/10   2.500  0.250000           stable

Как я могу сделать это в Pandas или Numpy? Спасибо.

1 Ответ

1 голос
/ 20 июня 2020

Делаем cut

pd.cut(df.pct,[-np.inf,-1,-0.5,0.5,1,np.inf],labels=['se d','de','st','in','se i'])
0     NaN
1      de
2      st
3    se d
4      st
5    se d
6      st
7    se i
8      de
9      st
Name: pct, dtype: category
Categories (5, object): [se d < de < st < in < se i]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...