首页 > 解决方案 > 根据列上的子字符串条件查找组中的下一行 - Pandas

问题描述

我正在尝试根据子字符串条件获取组中的下一行。

下面的代码忽略了分组条件。


df_shifted_rows = df[df.groupby(['id'])\
                     ['url'].apply(lambda x: x.str.contains("confirmation"))\
                     .shift(1).fillna(False)]

如果当前组中的匹配值在最后一行,那么班次应该给我 null。但它正在移动到下一组并给出下一组中的第一个值。

标签: pythonpandas

解决方案


分成两步

m = df['url'].str.contains("confirmation")
df = df[m.groupby(df['id']).shift(1)]

推荐阅读