python - 将最后一个有效索引掩码应用于数据框以获取最后一个有效值

标签 python performance pandas numpy

我有一个如下所示的数据框:

    s1        s2       s3       s4
0   v1        v2       v3       v4
0   v5        v6       v7       np.nan
0   v8      np.nan     v9       np.nan
0   v10     np.nan     np.nan   np.nan

基本上从上到下有数值,并且在某些随机索引值处跨列将仅切换到 np.nan。

我已经使用 .apply(pd.Series.last_valid_index) 来获取值仍然是数字的索引,但是,我不确定检索具有实际值的系列的最有效方法最后一个有效索引处的值。

理想情况下,我能够得出如下所示的系列:

   value
s1 v10
s2 v6
s3 v9
s4 v4

或作为看起来像的数据框

   s1 s2 s3 s4
0 v10 v6 v9 v4

非常感谢!

最佳答案

这是另一种方法,无需重置索引:

df.apply(lambda x: x[x.notnull()].values[-1])

s1    v10
s2     v6
s3     v9
s4     v4

关于python - 将最后一个有效索引掩码应用于数据框以获取最后一个有效值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50861003/

相关文章:

python - Keras 2.0.8 仅在 Python 3.x 中执行 1 epoch,在 2.x 中执行 10 epoch

java - 简单的 if 语句与普通的 if 语句

python - python中对一列数据进行排序需要分组

python - 有没有办法判断函数是否在单元测试中执行?

python - Django 1.6 在 View 中格式化日期时间

python - 使用 matplotlib 创建子图

Mysql:一张表有70亿条记录

windows - TCP 调整的资源和工具

java - 合并两个时间序列数据并同步日期时间?

python - 在 for 循环期间创建数据框