pandas 如何在迭代中修改行值

q3qa4bjr  于 2023-02-02  发布在  其他
关注(0)|答案(1)|浏览(160)

行值在以下迭代中不会更改:

>>> df
         species  population
panda       bear        1864
polar       bear       22000
koala  marsupial       80000
>>> for i, r in df.iterrows():
...     r['population']=r['population']*2
...
>>> df
         species  population
panda       bear        1864
polar       bear       22000
koala  marsupial       80000

有人能告诉我如何在上面的迭代中持久化更改的值吗?

nszi6y05

nszi6y051#

这是因为iterrows返回的副本与原始文件(df)"断开连接"。
杰夫·里巴克:你应该永远不要修改你正在迭代的东西。
请改用pandas.Series.mul

df["population"] = df["population"].mul(2)

输出:

print(df)

         species  population
panda       bear        3728
polar       bear       44000
koala  marsupial      160000

相关问题