我有以下数据框
cols = ['Name', 'Production']
data = [['Well1', '0'],
['Well2', '1200'],
['Well3', '300'],
['Well4', '600'],
['Well5', '100']
]
df = pd.DataFrame(data=data, columns=cols)
Name Production
0 Well1 0
1 Well2 1200
2 Well3 300
3 Well4 600
4 Well5 100
我需要插入一个名为“ Rating”的新列,并根据生产价值为其分配一个字符串。 我需要的条件是
rating is 'R1' if production is >= 850
'R2' if <= 150
'R3' if > 150 and < 850
'na' if =0
我尝试过的
bopd = [
(df['Production'] >= 850),
(df['Production'] <= 150),
(df['Production'] > 150) & (df['Production'] < 850),
(df['Production'] == 0)
]
ratings = ['R1', 'R3', 'R2', 'na']
df['Rating'] = np.select(bopd, ratings, default='none')
在我正在使用的数据集中,它说dtype:float64。我尝试了这个确切的代码(更改了列名),然后收到以下错误
TypeError: '>' not supported between instances of 'str' and 'int'
我尝试使用df.astype(str).astype(int),但仍然无法满足我的条件。