在满足条件的地方,获取最后一行 pandas

Posted

技术标签:

【中文标题】在满足条件的地方,获取最后一行 pandas【英文标题】:where condition is met, get last row pandas 【发布时间】:2018-09-27 20:04:58 【问题描述】:
+------------+----+----+----+-----+----+----+----+-----+
|     WS     | 1  | 2  | 3  |  4  | 1  | 2  | 3  |  4  |
+------------+----+----+----+-----+----+----+----+-----+
| w1         |  0 |  0 |  0 |  50 |  0 |  0 |  0 |  50 |
| w2         |  0 | 30 |  0 |   0 |  0 | 30 |  0 |   0 |
| d1         |  0 |  0 |  0 |   0 |  0 |  0 |  0 |   0 |
| d2         | 62 |  0 |  0 |   0 | 62 |  0 |  0 |   0 |
| Total      | 62 | 30 |  0 |  50 | 62 | 30 |  0 |  50 |
| Cumulative | 62 | 92 | 92 | 142 | 62 | 92 | 92 | 142 |
+------------+----+----+----+-----+----+----+----+-----+

根据列值大于0的情况,我想得到行“累积”的对应值。

如图所示,当50 > 0时,我想得到对应的“累积”值142。

+------------+----+----+---+-----+----+----+---+-----+
|     WS     | 1  | 2  | 3 |  4  | 1  | 2  | 3 |  4  |
+------------+----+----+---+-----+----+----+---+-----+
| Cumulative | 62 | 92 | 0 | 142 | 62 | 92 | 0 | 142 |
+------------+----+----+---+-----+----+----+---+-----+

我尝试过 pandas loc 和 iloc,但它们无法执行我想要的操作。

谢谢你!

【问题讨论】:

将您的数据框发布为文本,而不是图像。 一些代码也不错。 希望问题描述现在更好。 【参考方案1】:

您当然应该更好地设计您的问题,但无论如何,这里有一个可能的解决方案:

假设 df 是您的 DataFrame:

df[df>5].loc['Cumulative'].dropna()

【讨论】:

感谢您的建议。也许我编辑的问题描述更清楚。

以上是关于在满足条件的地方,获取最后一行 pandas的主要内容,如果未能解决你的问题,请参考以下文章

如果在 R 中满足条件,则从前一行获取值并连接

SQL查询满足两个条件的重复记录只显示2条记录的方法

oracle 表中有很多相同的记录,怎么只取满足条件的第一条?

如果满足 for 循环中的条件,则在同一行中的其他单元格中获取值

三剑客之sed

pandas:如果满足 3 列中的条件,则更新值