我正在处理钻孔的地下测量,其中每种测量类型都覆盖不同的深度范围。在这种情况下,深度被用作索引。
我需要找到每种测量类型的第一次和/或最后一次出现的数据(非NaN值)的深度(索引)。
获取数据框第一行或最后一行的深度(索引)很容易:df.index[0]或df.index[-1]。诀窍在于找到任何给定列的第一个或最后一个非NaN出现的索引。
df = pd.DataFrame([[500, np.NaN, np.NaN, 25],
[501, np.NaN, np.NaN, 27],
[502, np.NaN, 33, 24],
[503, 4, 32, 18],
[504, 12, 45, 5],
[505, 8, 38, np.NaN]])
df.columns = ['Depth','x1','x2','x3']
df.set_index('Depth')
Run Code Online (Sandbox Code Playgroud)
理想解决方案对于x1的首次出现将产生503的索引(深度),对于x2的首次出现将产生502(索引),对于x3的最后一次出现将产生504(索引)。
希望得到一些帮助。Python 包如何在 RStudio R-Markdown ( .Rmdpip install ) 文件中进行网状化?
例如,lasioPython 包无法通过conda. 因此,以下.Rmd代码无法将包添加到我的环境中:
```{r}
library(reticulate)
py_install("lasio") # did not work
```
Run Code Online (Sandbox Code Playgroud)
我还尝试使用Python代码安装包(无济于事):
```{python}
import sys
!{sys.executable} -m install lasio # did not work
$ python -m pip install lasio # also did not work
```
Run Code Online (Sandbox Code Playgroud)
事实证明,可以通过在 RStudio 的终端lasio窗口/选项卡中键入来将包安装/添加到我的环境中。但是,我希望代码可以与.R或.Rmd代码一起运行,以便在移植到另一台机器时自动执行该过程。谢谢。pip install lasio