使用pandas的groupby方法来将数据按照指定的列进行分组,并结合apply方法和自定义的筛选函数来实现根据自定义逻辑筛选行的操作。
示例代码:
import pandas as pd
data = { 'group': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'A'], 'value': [1, 2, 3, 4, 5, 6, 7, 8] } df = pd.DataFrame(data)
def my_filter(group): values = group['value'].values # 对于group值为A的分组,筛选出value大于等于3的行 if group.name == 'A': return group[values >= 3] # 对于group值为B的分组,筛选出value小于5的行 elif group.name == 'B': return group[values < 5] return group
result = df.groupby('group').apply(my_filter)
print(result)