【发布时间】:2019-02-15 01:51:17
【问题描述】:
我的数据框看起来像
ID colA
1 B
1 D
2 B
2 D
2 C
我已返回每组中最后一次发生事件 B 之后的所有行。输出将是:
ID colA
1 D
2 D
2 C
我试过了
a = df['colA'].str.contains('B').groupby(df['ID'])
b = df[(a.transform('sum') - a.cumsum()).eq(0)]
到目前为止一切正常。我只是想知道是否有任何替代方法可以实现这一目标?
【问题讨论】:
-
这对每个 ID 都有效吗?
-
如果一个组从不包含
B,它应该不返回那个ID吗? -
是的。它应该返回 Nothing。但我已经过滤了数据框以确保它确实有事件 B
标签: python pandas dataframe group-by pandas-groupby