首页 > 解决方案 > 如何使用 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

我怎样才能获取一个值并增加???

标签: pythonpandas

解决方案


另一种方法,但不像@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

推荐阅读