python - 在 pandas 中使用 .at[ ] 和 .iat[ ] 访问器
问题描述
每当我在 jupyter notebook 控制台上迭代 pandas 系列以使用 set_value 修改值时,我都会得到这个 FutureWarning: set_value is deprecated 并将在未来的版本中删除。请改用 .at[] 或 .iat[] 访问器。
如何在循环中使用 .at[] 或 .iat[]?
s = pd.Series([100 , 120.0 , 101.0 , 3.0 ])
for l , v in s.iteritems():
s.set_value(l, v + 4)
解决方案
你想要这样的东西:
In [14]: import pandas as pd
In [15]: s = pd.Series([100 , 120.0 , 101.0 , 3.0 ])
...:
In [16]: for l, v in s.iteritems():
...: s.at[l] = v + 4
...:
In [17]: s
Out[17]:
0 104.0
1 124.0
2 105.0
3 7.0
dtype: float64
但是,这是非常不受欢迎的,相反,您应该始终更喜欢矢量化操作:
In [18]: s = pd.Series([100 , 120.0 , 101.0 , 3.0 ])
...:
In [19]: s += 4
In [20]: s
Out[20]:
0 104.0
1 124.0
2 105.0
3 7.0
dtype: float64
推荐阅读
- java - 非法字符 U+200B android
- python - Qt doubleClicked 事件发出两次
- node.js - 如何加载 commonJS 模块的子路径?
- c++ - 如何使用 qt 获得正确的 http 文件长度?
- jquery - 使用 jQuery 在 DOM 中添加事件后单击不起作用
- mysql - 使用通配符在 MySQL 数据库中查找重复数据
- python - vtkTextActor 不起作用
- algorithm - 在给定索引列表的情况下查找最接近的索引
- python - 如何将输入放入函数中
- oracle - 在 oracle ucm web center 中签入文档时发生异常