Python 3.x 替换操作在数据帧中不起作用

Python 3.x 替换操作在数据帧中不起作用,python-3.x,Python 3.x,我正在尝试替换pandas数据帧df中ID235的Marks字段值。早些时候是65岁&我想换成75岁 所以我写了下面的代码 df.at['235', 'Marks'] = 75 df[df['id']=='235'].head() 在那之后,我试着看看这个替换是否有效。所以我写道 df.at['235', 'Marks'] 它给出的值是75 但是当我试图使用下面的代码查看id对应的列时 df.at['235', 'Marks'] = 75 df[df['id']=='235'].head

我正在尝试替换pandas数据帧df中ID235的Marks字段值。早些时候是65岁&我想换成75岁 所以我写了下面的代码

df.at['235', 'Marks'] = 75
df[df['id']=='235'].head()
在那之后,我试着看看这个替换是否有效。所以我写道

df.at['235', 'Marks']
它给出的值是75 但是当我试图使用下面的代码查看id对应的列时

df.at['235', 'Marks'] = 75
df[df['id']=='235'].head()

我在标记字段中看到旧值65。您能帮我更正一下吗?

您可以尝试使用
df.loc

df.loc[df.ID == 235, 'Marks'] = 75

df.at
如果没有索引,则基本上基于行数工作。

数据帧的主要索引是
id
吗?如果没有对数据帧进行任何其他修改,那么使用df.at['235',…]将首先使用索引,而不是稍后在语句中引用的列“id”。数据帧中的默认索引是行号
df.loc[df['id']='235','Marks']=
应该是您要查找的语句

例如,如果提供了正确的索引,您使用的模式应该有效:-

data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'])
df.at[0, "Name"] = "lolname"
df.at[0, "Name"]
=> 'lolname'
df
=> 
      Name  Age
    0  lolname   10
    1      Bob   12
    2   Clarke   13