gpt4 book ai didi

python - 有条件地将 pandas 数据框中的值替换为计算值

转载 作者:行者123 更新时间:2023-12-01 02:21:44 25 4
gpt4 key购买 nike

我正在努力解决以下问题。我有一个具有浓度值的数据框,该浓度值可能低于检测限(在本例中<100或<200)

df2 = DataFrame({"site":['site1','site2','site3','site4'],
"concentration":[12000,2000,'<100','<200']})

为了绘制这些值,我想将 <100 的值替换为 0.5 x 检测限。所以<100变成50; <200 变为 。然后,代码应添加一列 TPH< 以指示哪些位点低于检测限。

非常感谢任何帮助

最佳答案

创建一个掩码来查找带有 < 的元素,索引为 loc ,并更新 -

m = df2.concentration.astype(str).str.contains('<')
df2.loc[m, 'concentration'] = \
pd.to_numeric(df2.loc[m, 'concentration'].str.lstrip('<'), errors='coerce') / 2

df2

concentration site
0 12000 site1
1 2000 site2
2 50 site3
3 100 site4

此外,m记录低于检测限的行。

m

0 False
1 False
2 True
3 True
Name: concentration, dtype: bool

将其分配给df2 -

df2['TPH<'] = m
df2

concentration site TPH<
0 12000 site1 False
1 2000 site2 False
2 50 site3 True
3 100 site4 True

记住concentration是一个对象列。我建议转换为数字 -

df2.concentration = df2.astype(float)

或者,

df2.concentration = pd.to_numeric(df2.concentration, errors='coerce')

关于python - 有条件地将 pandas 数据框中的值替换为计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47890756/

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