首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫数据中的条件替换值与计算值

熊猫数据中的条件替换值与计算值
EN

Stack Overflow用户
提问于 2017-12-19 16:00:13
回答 1查看 383关注 0票数 1

我在为下面的事情而挣扎。我有一个具有浓度值的数据,它可以低于检测极限(在本例中<100或<200)

代码语言:javascript
运行
复制
df2 = DataFrame({"site":['site1','site2','site3','site4'],
                 "concentration":[12000,2000,'<100','<200']})

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

任何帮助都非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-19 16:04:06

创建一个掩码,用<查找元素,用loc索引,并更新-

代码语言:javascript
运行
复制
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将行记录在检测范围内。

代码语言:javascript
运行
复制
m

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

分配给df2 -

代码语言:javascript
运行
复制
df2['TPH<'] = m
df2

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

请记住,concentration是一个对象列。我建议你转换成数字-

代码语言:javascript
运行
复制
df2.concentration = df2.astype(float)

或,

代码语言:javascript
运行
复制
df2.concentration = pd.to_numeric(df2.concentration, errors='coerce')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47890756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档