我的数据框df = pd.read_csv('somedata')
有一列,即df [' rank'],它是一个序数变量。我想创建一个二进制列,当df [' rank']的范围为20到40时,df [' rkGood']等于1,否则为0。
我正在尝试这样的事情,但它不起作用:
df['rkGood']= 1 if (df['rank']>20 & df['rank']<=40) else 0
我该怎么做?
答案 0 :(得分:2)
首先将列初始化为零,然后使用loc
,如下所示:
df['rkGood'] = 0
df.loc[(df['rank'] > 20) & (df['rank'] <= 40), 'rkGood'] = 1
或者...
df['rkGood'] = 0
df.loc[df.rank.between(20, 40, inclusive=True), 'rkGood'] = 1
答案 1 :(得分:2)
您可以使用numpy.where
:
extraKwh