python - Python - 用 Pandas 替换特定值
问题描述
当满足某个条件时,我试图替换我的 Pandas 数据框中的一个值。我几乎得到了它,这就是我目前所拥有的:
df.loc[df['change daily'] < -5000] = 99999
该条件非常有效 - 它能够识别“每日更改”值小于 5000 的行。但是,这会导致整个行被替换为 99999。
10 2020-08-04 36675 ... 1 Tuesday
11 99999 99999 ... 99999 99999
12 2020-08-06 36502 ... 3 Thursday
我该如何做到这一点,所以只有“每天改变”才会改变?删除该行不是一种选择,因为我仍然需要使用其他列中的数字。
另外,虽然你们都在这里,有没有办法让它成为一个空值?我打算将它设置为一个超高值,然后将所有等于 99999 的值替换为 null,但我确信有一种方法可以将其设置为 null,而无需额外的步骤。
谢谢 :)
解决方案
import numpy as np
df.loc[df['change daily'] < -5000].loc[:,"change daily"]=np.nan
或者,
import numpy as np
indices=df.loc[df['change daily'] < -5000].index
df.loc[indices, "change daily"]=np.nan
或者
df.loc[df['change daily'] < -5000, 'change daily'] = np.nan
推荐阅读
- javascript - 如果子字符串前面没有特定字符串,则正则表达式匹配子字符串并忽略整个字符串?
- java - java 到达黄瓜中的场景后如何关闭浏览器,我的代码不起作用
- reactjs - 如何获取 Material UI Icon SVG 路径?React 图标选择器
- c++ - 无效的用户定义转换:C++ 错误
- swift - 如何从不同的类(Swift)引用自定义单元格内的插座
- react-native - 我无法在 React Native 中垂直对齐我的登录表单
- javascript - “DataTables 警告:无效的 JSON 响应”和“错误:未找到图形容器元素”
- javascript - 查找在数组中出现奇数次的 int
- javascript - Php - 使星号之间的文本变为粗体
- algorithm - 这可以近似吗?