如果你必须写4
np.where
计算列的条件,你做的不对。我认为考虑一种不同的方法是明智的。
一个简洁的选择包括
pd.cut
+
pd.get_dummies
.
bins = [0, 65, 80, 90, 100]
labels = ['Below 65%', '65% - 80%', '80% - 90%', 'Above 90%']
pd.concat([
df, pd.get_dummies(pd.cut(100 - df.Error_Rate, bins=bins, labels=labels, right=True))
], axis=1
)
Company Error_Rate Below 65% 65% - 80% 80% - 90% Above 90%
0 A 9 0 0 0 1
1 B 10 0 0 0 1
2 c 20 0 0 1 0
3 GK 17 0 0 1 0
4 GK 18 0 0 1 0
5 GK 30 0 1 0 0
6 GK 35 0 1 0 0
7 GK 25 0 1 0 0
8 GK 32 0 1 0 0
9 GK 40 1 0 0 0
10 GK 50 1 0 0 0
11 MB 60 1 0 0 0
12 MB 70 1 0 0 0
13 MB 70 1 0 0 0