使用pandas的groupby方法对数据进行分组,然后使用apply方法对每个组进行操作。可以定义一个函数,对于每个分组进行处理,并返回需要保留的行。在定义函数中,可以使用shift方法来比较当前行和下一行的值是否相同,从而判断是否为最后一行。最后,将apply方法返回的结果合并起来形成最终结果。
示例代码如下:
import pandas as pd
df = pd.DataFrame({ 'group':['A','A','B','B','B','C','C'], 'value':[1,2,3,4,5,6,7] })
def keep_last_row(group_df): mask = group_df['value'].shift(-1) != group_df['value'] return group_df.loc[mask | group_df.index[-1]]
result_df = df.groupby('group').apply(keep_last_row)
print(result_df)
注意:这种方法仅适用于某个条件只在最后一行出现的情况。如果某个条件可以在同一分组的多个行中出现,则需要根据实际情况进行修改。