python - 使用 groupby 过滤重复值
问题描述
我正在阅读文档以了解与 groupby 一起使用时的方法过滤器。为了理解它,我有以下场景:
我正在尝试从我的 DataFrame df 中获取按城市分组的重复名称。下面是我的尝试:
df = pd.DataFrame({
'city':['LA','LA','LA','LA','NY', 'NY'],
'name':['Ana','Pedro','Maria','Maria','Peter','Peter'],
'age':[24, 27, 19, 34, 31, 20],
'sex':['F','M','F','F','M', 'M'] })
df_filtered = df.groupby('city').filter(lambda x: len(x['name']) >= 2)
df_filtered
我得到的输出是:
city name age sex
LA Ana 24 F
LA Pedro 27 M
LA Maria 19 F
LA Maria 34 F
NY Peter 31 M
NY Peter 20 M
我期待的输出是:
city name age sex
LA Maria 19 F
LA Maria 34 F
NY Peter 31 M
NY Peter 20 M
我不清楚在哪些情况下我必须在“groupby”方法和“filter”方法的“len”中使用不同的列名
谢谢
解决方案
怎么样duplicated
:
df[df.duplicated(['city', 'name'], keep=False)]
推荐阅读
- mysql - Mysql 查询错误:SELECT 列表不在 GROUP BY 子句中且包含非聚合列,与 sql_mode=only_full_group_by 不兼容
- verilog - Verilog 模块未按预期更新
- python - 需要更高效的代码来编写一级矩阵的总和
- python - 如何读取 SVG 文件并在其中绘制内容?
- mysql - MySQL中的模糊名称搜索,匹配相关性
- dns - 如何使用安装在 Digital Ocean VPS 上的 Direct Admin 解析域
- android-studio - Gradle 错误:路径不是保存在 OneDrive 中的 Android 项目的可读目录
- javascript - 返回内部 for 循环会中断循环
- azure - Could not grant admin consent. Your organization does not have a subscription (or service principal) for the following API(s): Power BI Service
- python - Condition in dataframe