将百分比变化映射到熊猫或 Numpy 中的字符串描述



我有一个数据帧,如下所示:

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

我怎样才能在熊猫或Numpy中做到这一点?谢谢。

我们做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]

最新更新