【发布时间】:2021-12-16 19:09:15
【问题描述】:
我是 python 新手,我有一个关于如何过滤掉一些不包含任何女性案例的组(按“日期”分组)的问题。假设我有一个如下的数据框:
import pandas as pd
import numpy as np
exam_data = {
'date': ['2000-1', '2000-1', '2000-1', '2000-2', '2000-2', '2000-3', '2000-4', '2000-4', '2000-5', '2000-5','2000-5'],
'sex': ['M', 'M', 'F', 'M', 'M', 'F', 'M', 'M', 'F', 'F', 'M'],
'qualify': ['yes', 'no', 'yes', 'no', 'no', 'yes', 'yes', 'no', 'no', 'yes', 'no']}
df_exam = pd.DataFrame(exam_data)
我试过这个似乎是正确的,但我觉得它太具体了,因为我使用了包含'F'的字符串:
df_filter = df_exam.groupby("date").filter(lambda gr: gr["sex"].str.contains("F").any())
还有其他算法比这更有效,或者比这更实用吗?
非常感谢您的 cmets。
【问题讨论】:
-
df_exam.groupby("date").filter(lambda gr: gr["sex"].eq("F").any())也可以使用
标签: python pandas pandas-groupby filtering