根据Python熊猫中的一系列列值添加类别

时间:2018-06-19 20:28:44

标签: python pandas dataframe

我有一个熊猫DataFrame:

 df =
        id mu 
        1 -5
        2 -3
        3 0
        4 3
        5 25

如何根据“ mu”列的特定值范围设置另一列“等级”:

df['rating'] = 'A' if -1 >= mu <=1

df['rating'] = 'B' if -2 >= mu <=2

df['rating'] = 'C' if -3 >= mu <=3

df['rating'] = 'D' if -4 >= mu <=4

df['rating'] = 'F' if -5 < mu > 5

1 个答案:

答案 0 :(得分:0)

我使用pd.cut()找到了解决方案。

更改为绝对值。

 df['abs_mu'] = df.mu.abs()

df=

      id  mu  abs_mu
    0   1  -5       5
    1   2  -3       3
    2   3   0       0
    3   4   2       2
    4   5  25      25

然后是pd.cut()

pd.cut(df.abs_mu,[0, 1, 2, 3, 4, 5, np.inf],labels=['A','B', 'C', 'D', 'E', 'F'], include_lowest=True)

收益:

0    E
1    C
2    A
3    B
4    F
Name: abs_mu, dtype: category
Categories (6, object): [A < B < C < D < E < F]

对不起,我感到愚蠢。 谢谢你的时间。