Pandas和dataframe:如何转换二元变量中的序数变量?

时间:2016-02-18 16:26:36

标签: python pandas

我的数据框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  

我该怎么做?

2 个答案:

答案 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