首页 > 解决方案 > 某些行值的有条件增加 - 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

任何帮助或想法表示赞赏!

标签: pythonpandasmathconditional-statements

解决方案


(
    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

推荐阅读