加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 我怎么能实现像np.where这样的东西([‘value1′,’va

发布时间:2020-12-16 22:24:16 所属栏目:Python 来源:网络整理
导读:嗨我想在[value1,value2]等条件下将一个分类变量的值更改为其他值 这是我的代码: random_sample['NAME_INCOME_TYPE_ind'] = np.where(random_sample['NAME_INCOME_TYPE'] in ['Maternity leave','Student']),'Other') 我尝试在这行代码的不同位置添加.any()

嗨我想在[‘value1′,’value2’]等条件下将一个分类变量的值更改为其他值

这是我的代码:

random_sample['NAME_INCOME_TYPE_ind'] = np.where(random_sample['NAME_INCOME_TYPE'] in ['Maternity leave','Student']),'Other')

我尝试在这行代码的不同位置添加.any(),但它仍然无法解决错误.
ValueError:Series的真值是不明确的.使用a.empty,a.bool(),a.item(),a.any()或a.all().

最佳答案
您可以使用str.contains来检查条件满足的位置:

l = ('|').join(['Maternity leave','Student'])
m = random_sample['NAME_INCOME_TYPE'].str.contains(l)

您还可以使用.isin生成m:

random_sample['NAME_INCOME_TYPE'].isin(['Maternity leave','Student'])

然后使用np.where.但是,请注意,您不仅可以根据条件指定要从中选择的两个值中的一个,还必须同时指定x和y.对于您的情况,您可以使用df [‘NAME_INCOME_TYPE’]和其他作为x和y:

random_sample['NAME_INCOME_TYPE_ind'] = np.where(m,'Other',random_sample['NAME_INCOME_TYPE'])

测试示例数据帧:

df = pd.DataFrame({'NAME_INCOME_TYPE':['word1','word2','Student']})

l = ('|').join(['Maternity leave','Student'])
m = random_sample['NAME_INCOME_TYPE'].str.contains(l)
df['NAME_INCOME_TYPE_ind'] = np.where(m,df['NAME_INCOME_TYPE'])

       NAME_INCOME_TYPE NAME_INCOME_TYPE_ind
0            word1                word1
1            word2                word2
2          Student                Other

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读