Skip to main content
 首页 » 编程设计

python之Pandas :根据条件删除组

2025年05月04日11oomusou

我想在满足条件时从我的 pandas 数据框中删除组。例如这个数据集,每当客户回答i 问题a 我需要从这个客户中删除整个记录。

import pandas as pd 
 
df = pd.DataFrame({'customer': [1, 1, 2], 'question': ['a', 'b', 'a'], 'answer': ['i', 'ii', 'iii']}) 
df 
    customer    question    answer 
0   1           a           i 
1   1           b           ii 
2   2           a           iii 

所以对于这种情况,我需要这样过滤掉。

    customer    question    answer 
0   2           a           iii 

实现这一目标的好方法是什么?我唯一能想到的方法就是旋转、过滤和融化。

请您参考如下方法:

可以通过filter来完成

df.groupby('customer').filter(lambda x : ~((x.answer=='i')&(x.question=='a')).any()) 
 
Out[109]:  
  answer  customer question 
2    iii         2        a