python - 某些行值的有条件增加 - Pandas
问题描述
我有一个包含一列值的数据集,但是由于我想在 Pandas 中更正的系统错误,该列中的某些行包含异常值(如 -999,999 或 999,999)。
原始数据集如下所示:
Value Column
-2092.925951
910.9736
-910.9736
-2024.96475
-2024.96475
999947.438 - (outlier)
67.4672
-999993.313 - (outlier)
9.8603
49.5318
17.5591
我只想将 1,000,000 添加到数字介于 -800,000 和 -999,999 之间的行中,并从数字介于 800,000 和 999,999 之间的行中减去 1,000,000。
所需数据集的示例如下:
Value Column
-2092.925951
910.9736
-910.9736
-2024.96475
-2024.96475
-52.562 - (fixed outlier with 999,947.438 - 1,000,000)
67.4672
6.687 - (fixed outlier with -999,993.313 + 1,000,000)
9.8603
49.5318
17.5591
任何帮助或想法表示赞赏!
解决方案
(
df.assign(l=df['Value Column'].between(800000,999999)*-1000000)
.assign(s=df['Value Column'].between(-999999,-800000)*1000000)
.apply('sum', axis=1)
)
0 -2092.925951
1 910.973600
2 -910.973600
3 -2024.964750
4 -2024.964750
5 -52.562000
6 67.467200
7 6.687000
8 9.860300
9 49.531800
10 17.559100
dtype: float64
推荐阅读
- php - 无法在共享主机上通过 php 运行 bash 脚本
- powershell - 找不到“XmlMessageFormatter”的重载和参数计数:Powershell 中的 N 和 New-Object
- c - 在具有最新 XCode 的 MacOS Catalina 上,__DARWIN_C_LEVEL 对于 String.h 来说太低了……我该怎么办?
- docker - Debian 的 zic 缺少 -b 选项
- python - 如何允许客户端连接到 python 服务器?
- laravel - 两个模型的 Laravel 关系和枢轴
- css-selectors - 另一个类中包含的第一次出现的类的 CSS 选择器
- android - 在 TensorFlow Lite C API 中注册自定义算子
- python - 处理使用“http”下载的 JSON 时出错 - TypeError:字符串索引必须是整数
- python - 如何对每 n 次出现的范围进行切片?