首页 > 解决方案 > 熊猫的 itterows 更新问题

问题描述

我有一个数据集:

    id   name  m
0   1    mina  0
1   1    sara  0
2   2    travi 0
3   3    caty  0
5   4    el    0
6   6    tom   0

我编写了以下代码来更改我的数据框

for index, row in df.iterrows():
     if(row['m']==0):
          df.loc[df['id'] ==row['id'] ,'m'] = 1
      print(row['name'])

结果是

  mina
  sara
  travi
  caty
  el
  tom

我的问题是为什么要打印第二行?有什么办法可以解决吗?

标签: pythonpandaspandas-loc

解决方案


那是你需要的吗?

for item in df['id']:
      if ((df.loc[df['id'] == item, 'm'].values[0]) == 0):
            df.loc[df['id'] == item, 'm'] = 1  
       print(item)

推荐阅读