python - 带有 np.where、while 循环或嵌套 if 语句的条件变量
问题描述
我有以下土壤水分时间序列数据(代替时间戳的索引)。我试图确定初始大幅增加以及土壤在两个传感器处饱和时(sm2 和 sm8 加上 1 小时和 2 小时的值变化)。我正在使用 np.where 但我需要另外确定何时满足这些条件并继续在前 3 个值之上增加 >= 0.1,直到不满足该条件。我将它们分类为 water_release = 1 时为真,0 时为假以用于机器学习,因此需要将值输出到数据框中自己的列中,以便稍后拆分和测试数据。对于下面的数据,除最后三个之外的所有值都应标识为 1。我应该使用 for 循环、while 还是 if 语句?
分类代码:
manual['water_release1'] = np.where((manual['delta_sm2']>0.5) | (manual['delta_sm8']>0.5), 1, 0)
manual['water_release2'] = np.where((manual['delta_sm2_2h']>=1) | (manual['delta_sm8_2h']>=1), 1, 0)
manual['saturation'] = np.where((manual['sh_sm2_auto_%']>=39) & (manual['sh_sm8_auto_%']>=39), 1, 0)
manual['water_release_target'] = np.where((manual['water_release1'] == 1) | (manual['water_release2'] == 1) | (manual['saturation'] == 1), 1,0)
数据:
index sm2 sm8 sm20 delta_sm2 delta_sm2_2h delta_sm8 delta_sm8_2h
2170 21.3 31.79 40.15 2.25 2.25 0.14 0.14
2171 28.1 32.8 40.3 6.80 9.05 1.0 1.14
2172 33.9 34.1 40.4 5.79 12.59 1.30 2.30
2173 35.2 34.8 40.4 1.30 7.10 0.69 2.0
2174 35.95 37.45 40.4 0.75 2.05 2.65 3.35
2175 36.59 40.2 40.4 0.64 1.39 2.75 5.40
2176 36.9 40.65 40.4 0.30 0.94 0.45 3.20
2177 37.25 40.7 40.4 0.35 0.65 0.04 0.5
2178 37.5 40.7 40.4 0.25 0.60 0.0 0.04
2179 37.55 40.75 40.4 0.04 0.29 0.04 0.04
2180 37.7 40.8 40.4 0.15 0.20 0.04 0.09
2181 37.9 40.8 40.4 0.19 0.35 0.0 0.04
2182 38.05 40.8 40.4 0.14 0.34 0.0 0.0
2183 38.1 40.8 40.4 0.05 0.20 0.0 0.0
2184 38.15 40.8 40.4 0.05 0.10 0.0 0.0
2185 38.25 40.8 40.4 0.09 0.14 0.0 0.0
2186 38.5 40.84 40.4 0.25 0.34 0.04 0.04
2187 38.75 40.9 40.4 0.25 0.5 0.05 0.10
2188 38.8 40.9 40.4 0.04 0.29 0.0 0.05
2189 38.84 40.9 40.4 0.04 0.09 0.0 0.0
2190 38.9 40.9 40.4 0.05 0.10 0.0 0.0
2191 38.9 40.9 40.4 0.0 0.056 0.0 0.0
2192 38.9 40.9 40.4 0.0 0.0 0.0 0.0
2193 38.95 40.9 40.4 0.05 0.05 0.0 0.0
2194 38.95 40.9 40.4 0.0 0.05 0.0 0.0
2195 38.95 40.9 40.4 0.0 0.0 0.0 0.0
2196 38.15 40.9 40.4 -0.80 -0.80 0.0 0.0
2197 38.95 40.9 40.4 -2.39 -3.20 0.0 0.0
2198 33.3 40.9 40.4 -2.45 -4.85 0.0 0.0
2199 31.6 40.9 40.4 -1.69 -4.14 0.0 0.0
2200 30.15 40.9 40.4 -1.45 -3.14 0.0 0.0
解决方案
推荐阅读
- android - 在调试器工具窗口中看不到协程选项卡
- complexity-theory - 我们可以说 2x+1 = o(-5x^2+2)
- python - 使用 datatable 读取大尺寸 csv 文件的错误信息
- arrays - Powershell 从 CSV 文件中的所有列构建所有可能组合的数组
- jquery - JQuery 在点击时加载更多帖子
- c++ - 错误:C2661:'std::array
::array':没有重载函数需要 3 个参数 - laravel - Laravel 工厂创建而不调用 afterCreating 回调
- javascript - React Native 格式的 cookie
- python - 如何使用python从文件夹中发送所有文件?
- visual-studio - 为 iis 上托管的 webforms 项目调试 javascript