python - 如何使用 where 条件设置一个值
问题描述
我有这样的数据框(df)
key name value
0 0 master 0
1 1 basic 0
2 2 clear 0
3 3 debu 0
我想做的是下面这样
items = [master,master,basic,clear]
for i in items: # loop the items
df[where('name==@i')].value += 1 # increment each item
最终输出应该是
key name value
0 0 master 2
1 1 basic 1
2 2 clear 1
3 3 debu 0
我怎样才能获取一个值并增加???
解决方案
另一种方法,但不像@jezrael那样使用尽可能多的选项
items = ['master','master','basic','clear']
l={i:items.count(i) for i in items}
df['value']=df['name'].map(l).fillna(0).astype(int)
df
key name value
0 0 master 2
1 1 basic 1
2 2 clear 1
3 3 debu 0
推荐阅读
- node.js - 数据库查询返回一个查询的负数和另一个查询的正数 - 不知道为什么
- c - C - Float Imprecision,如何锁定计算的小数位?
- python-3.x - /usr/bin/ld 中缺少 python-rocksdb 安装 -llz4
- mysql - 存储过程中的 MySQL 解除阻塞
- swift - 如何在 Swift 的 Stripe 中的 STPAddCardViewController 中显示“支付”而不是“完成”
- python-3.x - 如何将我的程序添加到右键单击上下文菜单并传递它的路径
- reactjs - 为什么我的 React Dom 渲染方法不起作用?
- kong - 在插件 jwt-keycloak Kong 中分配不同的角色
- android - Android / Kotlin - 通过按下导航菜单按钮失去对文本字段的关注后,片段未附加到活动
- java - Maven 多模块根 POM 与父 POM