在达到一定值后删除Pandas DF中的行的最佳方法是什么?

Xander

我将尝试解释简单。我有一个这样的数据框有更多的列

d = {'Id': [1, 1, 1, 1, 2, 3, 3, 3], 'Val': ['Yes', 'Stop', 'Yes', 'Yes', 'Yes', 'Yes', 'Stop', 'Yes']}
df = pd.DataFrame(data=d)
    Id  Val
0   1   Yes
1   1   Stop
2   1   Yes
3   1   Yes
4   2   Yes
5   3   Yes
6   3   Stop
7   3   Yes

这是按ID排序的,每个ID至少有一个“停止”值,但可能没有“是”值。

我的目标是在每个Id上将所有值“ Stop”后的行“ Yes”排在同一Id上,但保留前一个和Stop,因此结果应为:

    Id  Val
0   1   Yes
1   1   Stop
4   2   Yes
5   3   Yes
6   3   Stop

如前所述,我有更多列要保留的信息,因此groupby并不是一种选择。实现此目的的最有效方法是什么?提前致谢

PD:对不起,如果有语法错误,英语不是我的母语。

耶斯列尔

一个想法是将每个组的索引值与值的第一个进行比较indexStop并通过boolean indexing以下方式进行过滤

f = lambda x: x.index <= x.eq('Stop').idxmax()
mask = df.groupby('Id')['Val'].transform(f)
df = df[mask]
print (df)
   Id   Val
0   1   Yes
1   1  Stop
4   2   Yes
5   3   Yes
6   3  Stop

或可以使用GroupBy.cumsum,但也有必要为选择Stop行而转移

mask = (df['Val'].eq('Stop').groupby(df['Id'])
                 .apply(lambda x: x.shift().cumsum())
                 .fillna(0)
                 .eq(0))

df = df[mask]
print (df) 
 Id   Val
0   1   Yes
1   1  Stop
4   2   Yes
5   3   Yes
6   3  Stop

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在达到一定值后删除Pandas DF中的行的最佳方法是什么?

来自分类Dev

一定值后从链接列表中删除项目

来自分类Dev

从一行中的表中选择两行的最佳方法是什么?

来自分类Dev

在Linux中达到一定大小后,停止将Python脚本写入文件

来自分类Dev

在Linux中达到一定大小后,停止将Python脚本写入文件

来自分类Dev

如何在Javascript中达到一定限制后破坏数组

来自分类Dev

如何在css中达到一定宽度后断线

来自分类Dev

Android中删除表中所有行的最佳方法是什么

来自分类Dev

Android中删除表中所有行的最佳方法是什么

来自分类Dev

更改2D数组中特定行和列的值的最佳方法是什么?

来自分类Dev

删除连续重复行的最佳方法是什么

来自分类Dev

在列中无限期重复函数,直到值达到一定水平

来自分类Dev

对从一个df到另一个的另一行的大量行执行操作的最佳方法是什么?

来自分类Dev

在JavaScript中删除对象的最佳方法是什么?

来自分类Dev

从表数据中删除列的最佳方法是什么?

来自分类Dev

从词典中删除所有实例的最佳方法是什么?

来自分类Dev

基于另一列中相应行的条件值填充数据框的列的最佳方法是什么?

来自分类Dev

根据另一行的条件在Pandas数据框中创建新列的最佳方法是什么?

来自分类Dev

在if条件中舍弃null值的最佳方法是什么-JavaScript

来自分类Dev

在MySQL DB中存储单个值的最佳方法是什么?

来自分类Dev

在PostgreSQL中存储基于NodaTime的值的最佳方法是什么?

来自分类Dev

在documentdb中存储日期时间值的最佳方法是什么?

来自分类Dev

在承诺链中返回多个值的最佳方法是什么

来自分类Dev

使用Java,用数组中的值更新每一行中的一列的最佳方法是什么?(SQLite)

来自分类Dev

防止在AngularJS中达到一定长度后从文本框中删除字符串

来自分类Dev

从数据框中获取特定列中具有最小值的行的最佳方法是什么?

来自分类Dev

从数据框中获取特定列中具有最小值的行的最佳方法是什么?

来自分类Dev

使用具有最佳性能值的弹簧数据更新行的最佳方法是什么?

来自分类Dev

MySQL中的日期差异达到一定天数

Related 相关文章

  1. 1

    在达到一定值后删除Pandas DF中的行的最佳方法是什么?

  2. 2

    一定值后从链接列表中删除项目

  3. 3

    从一行中的表中选择两行的最佳方法是什么?

  4. 4

    在Linux中达到一定大小后,停止将Python脚本写入文件

  5. 5

    在Linux中达到一定大小后,停止将Python脚本写入文件

  6. 6

    如何在Javascript中达到一定限制后破坏数组

  7. 7

    如何在css中达到一定宽度后断线

  8. 8

    Android中删除表中所有行的最佳方法是什么

  9. 9

    Android中删除表中所有行的最佳方法是什么

  10. 10

    更改2D数组中特定行和列的值的最佳方法是什么?

  11. 11

    删除连续重复行的最佳方法是什么

  12. 12

    在列中无限期重复函数,直到值达到一定水平

  13. 13

    对从一个df到另一个的另一行的大量行执行操作的最佳方法是什么?

  14. 14

    在JavaScript中删除对象的最佳方法是什么?

  15. 15

    从表数据中删除列的最佳方法是什么?

  16. 16

    从词典中删除所有实例的最佳方法是什么?

  17. 17

    基于另一列中相应行的条件值填充数据框的列的最佳方法是什么?

  18. 18

    根据另一行的条件在Pandas数据框中创建新列的最佳方法是什么?

  19. 19

    在if条件中舍弃null值的最佳方法是什么-JavaScript

  20. 20

    在MySQL DB中存储单个值的最佳方法是什么?

  21. 21

    在PostgreSQL中存储基于NodaTime的值的最佳方法是什么?

  22. 22

    在documentdb中存储日期时间值的最佳方法是什么?

  23. 23

    在承诺链中返回多个值的最佳方法是什么

  24. 24

    使用Java,用数组中的值更新每一行中的一列的最佳方法是什么?(SQLite)

  25. 25

    防止在AngularJS中达到一定长度后从文本框中删除字符串

  26. 26

    从数据框中获取特定列中具有最小值的行的最佳方法是什么?

  27. 27

    从数据框中获取特定列中具有最小值的行的最佳方法是什么?

  28. 28

    使用具有最佳性能值的弹簧数据更新行的最佳方法是什么?

  29. 29

    MySQL中的日期差异达到一定天数

热门标签

归档