gpt4 book ai didi

python - 在非 NaN 的列中查找第一个和/或最后一个值的索引

转载 作者:太空狗 更新时间:2023-10-29 21:27:42 28 4
gpt4 key购买 nike

我正在处理来自钻孔的地下测量,其中每种测量类型涵盖不同的深度范围。在这种情况下,深度被用作索引。

我需要为每种测量类型找到第一次和/或最后一次出现的数据(非 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')

enter image description here

理想的解决方案是为第一次出现的 x1 生成 503 的索引(深度),为第一次出现的 x2 生成 502,为最后一次出现的 x3 生成 504。

最佳答案

first_valid_index () 和 last_valid_index() 可以使用。

    >>> df
x1 x2 x3
Depth
500 NaN NaN 25.0
501 NaN NaN 27.0
502 NaN 33.0 24.0
503 4.0 32.0 18.0
504 12.0 45.0 5.0
505 8.0 38.0 NaN
>>> df["x1"].first_valid_index()
503
>>> df["x2"].first_valid_index()
502
>>> df["x3"].first_valid_index()
500
>>> df["x3"].last_valid_index()
504

关于python - 在非 NaN 的列中查找第一个和/或最后一个值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57293506/

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