我有一个熊猫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
答案 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]
对不起,我感到愚蠢。 谢谢你的时间。