按列分组表格并按另一列过滤,移除组内过滤项重复超一次的行
数据集分组过滤解决方案
需求说明
按指定列分组,依据另一列过滤,移除组内该过滤项出现次数超过一次的所有行。
Python Pandas 实现(适合本地/内存可承载的数据集)
import pandas as pd # 加载数据集(替换为你的数据加载方式,比如读Excel、数据库等) df = pd.read_csv("your_data.csv") # 计算每个分组内过滤列的出现次数 df['filter_count'] = df.groupby('分组列名称')['过滤列名称'].transform('count') # 筛选出组内过滤项仅出现一次的行 result_df = df[df['filter_count'] == 1].drop(columns='filter_count') # 保存或查看结果 # result_df.to_csv("filtered_data.csv", index=False) print(result_df)
SQL 实现(适合数据库存储的大规模数据集)
如果数据存在数据库中,用窗口函数可以高效处理:
SELECT * FROM ( SELECT *, COUNT(*) OVER (PARTITION BY 分组列名称, 过滤列名称) AS filter_count FROM 你的表名 ) temp WHERE filter_count = 1;
说明
- 替换代码中的
分组列名称和过滤列名称为你实际的列名即可 - Pandas 方案适合中等规模数据集,超大规模数据建议用SQL或分布式计算框架(如Spark)处理
内容的提问来源于stack exchange,提问作者mathew olakunle
相关产品推荐
相关产品推荐

