gpt4 book ai didi

python - 根据阈值字典替换某些列中的值?

转载 作者:行者123 更新时间:2023-12-04 00:17:37 24 4
gpt4 key购买 nike

我正在尝试从这个 Panda df 中获取:

   mag  ip    em   as_ppm  au_ppm
0 820 6447 99 4670 30
1 774 5827 26 35 97
2 800 9089 75 9727 25
3 584 6122 38 2911 80
4 494 7616 78 6673 67
5 742 6626 30 9424 69
6 803 2136 71 4043 73
7 682 8172 43 8806 26
8 132 1369 41 8267 34
9 680 5536 41 4431 16

使用这些阈值:

lowThresholds = {'mag':500,'ip':5000, 'em':0, 'as_ppm':0, 'au_ppm':0}
highThresholds = {'mag':1000,'ip':7500, 'em':90, 'as_ppm':8000, 'au_ppm':90}

到一个具有真假的形状相同的矩阵:

   mag   ip    em    as_ppm  au_ppm
0 True True False True True
1 True True True True False
2 True False True False True
3 True True True True True
4 True False True True True
5 True True True False True
6 True False True True True
7 True False True False True
8 False False True False True
9 True True True True True

理想情况下使用:

weights = {'mag':5,'ip':10, 'em':5, 'as_ppm':20, 'au_ppm':30}

结束:

   mag    ip  em  as_ppm  au_ppm
0 5 10 5 20 30
1 5 10 5 20 0
2 5 0 5 0 30
3 5 10 5 20 30
4 5 0 5 20 30
5 5 10 5 0 30
6 5 0 5 20 30
7 5 0 5 0 30
8 0 0 5 0 30
9 5 10 5 20 30

我通过创建各种新数据框找到了一些糟糕的方法,但我知道它会扩展得非常厉害。

最佳答案

尝试

s=(df.lt(highThresholds) & df.gt(lowThresholds)).mul(weights)
mag ip em as_ppm au_ppm
0 5 10 0 20 30
1 5 10 5 20 0
2 5 0 5 0 30
3 5 10 5 20 30
4 0 0 5 20 30
5 5 10 5 0 30
6 5 0 5 20 30
7 5 0 5 0 30
8 0 0 5 0 30
9 5 10 5 20 30

关于python - 根据阈值字典替换某些列中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62716991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com