python - 忽略使用熊猫“where”提出的字符串
问题描述
我想知道当我将值从数字重新标记为字符串时,是否有一种方法可以跳过字符串:
s = pd.Series(np.arange(1,100,1))
我想要做的是从我的样本数据中获得第一个和第二个标准偏差:
s = s.where((s <= s.std() *1) & (s >= s.std() *-1), "1_StDev", errors="ignore")
s = s.where((s <= s.std() *2) & (s >= s.std() *-2), "2_StDev", errors="ignore")
但似乎我的代码仍然返回错误,尽管将错误参数设置为"ignore"
.
另外,我想知道pd.cut
这里是否可行。如果是这样,请教我怎么做。
解决方案
在这里,您可以使用np.select
conditions = [(s <= s.std() *1) & (s >= s.std() *-1),
(s <= s.std() *2) & (s >= s.std() *-2)]
choices = ["1_StDev", "2_StDev"]
s = pd.Series(np.select(conditions, choices))
对于条件不匹配的值,最好将默认值设置为@Chris 建议的值。
s = pd.Series(np.select(conditions, choices, default=s))
推荐阅读
- openssl - Openssl 拒绝验证签名
- python - pymysql批量检索数据
- angular - 库中的 APP_INITIALIZER 导致“不支持 Lambda”错误
- php - PHP 临时目录问题
- xml - 将 XML 转换为资源字典
- python - 在另一台计算机上运行的 python 脚本的远程控制功能
- firebase - 为什么在 Firebase 云函数中创建的存储桶不会出现在控制台中?
- python - 从 Python3.7 导入 wxPython 时出现 ImprtError
- html - 如何让按钮检查一个id
- python - QTableWidget:在QTableWidgetItem区域外拖拽选择