python - Pandas :根据条件删除组

标签 python pandas pandas-groupby

我想在满足条件时从我的 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

关于python - Pandas :根据条件删除组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48331802/

相关文章:

python - statsmodels 马赛克图 - 如何排序类别

python - 当我写入 CSV 时,如何隐藏 pandas to_datetime NaT?

python - Pandas groupby.按绝对值排名

python - 如何根据列中的列表元素对数据框进行分组

python - 在 Python 2.7.2 中加入一系列嵌套列表的字符串

Python - 读取特定的文本行

python - 统计几个范围内的天数

python - 按 Pandas 数据框分组并选择序列中的最大值

Python 通配符导入与命名导入

python - 特定颜色的 2D 蒙版