你可以用
pd.cut()
要执行映射,这比必须在
if-else
声明:
import pandas as pd
df = pd.DataFrame({'composition_score': [40, 35, 31, 27]})
composition_score_value = 40
bins = pd.IntervalIndex.from_tuples([(0, 70), (70,80), (80,90), (90,100)])
labels = ['Unsatisfactory work.','Improvement needed.','Satisfactory work.','Good work.']
d = dict(zip(bins,labels))
x = pd.cut(df['composition_score']/composition_score_value*100, bins, right=False).map(d)
产量:
0 Good work.
1 Satisfactory work.
2 Improvement needed.
3 Unsatisfactory work.
Name: composition_score, dtype: category
Categories (4, object): ['Unsatisfactory work.' < 'Improvement needed.' < 'Satisfactory work.' < 'Good work.']