You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python能否基于特定参数对DataFrame分组?Excel大数据集如何筛选重复值?

当然可以!这两个都是数据处理里的高频需求,我来给你拆解清楚:

一、用Python给DataFrame按特定参数分组

完全没问题,用pandas的groupby()方法就能轻松实现,甚至可以同时按多个参数(比如你的示例里的Name和No.)联合分组。

先看你的示例数据,我们先构造对应的DataFrame:

import pandas as pd

# 构造示例DataFrame1
df1 = pd.DataFrame({
    'Name': ['Bob', 'Joe', 'John', 'Bob', 'John'],
    'No.': [2123320, 2832883, 2139300, 2123320, 2234903],
    'Comment': ["Doesn't Matter", 'Whatever', 'Irrelevant', 'Something', 'Regardless']
})

# 构造示例DataFrame2
df2 = pd.DataFrame({
    'Name': ['Bob', 'Joe', 'John', 'Bob', 'John'],
    'No.': [2123320, 2832883, 2139300, 2123320, 2234903],
    'Report': ['Great', 'Solid', 'Awesome', 'Good', 'Fine']
})

1. 按单个/多个特定参数分组

比如你想按Name和No.这两个参数联合分组(因为Bob的No.是相同的,属于同一组):

# 按Name + No.联合分组
grouped_df1 = df1.groupby(['Name', 'No.'])

# 遍历查看每组内容
for group_key, group_data in grouped_df1:
    print(f"分组键: {group_key}")
    print(group_data)
    print("---")

2. 分组后的常用操作

分组后还能做聚合、合并等操作,比如统计每组的行数,或者把每组的评论合并成字符串:

# 统计每组的行数
grouped_df1.size()

# 合并每组的Comment内容
grouped_df1['Comment'].apply(', '.join)

如果需要把两个DataFrame按相同参数分组后合并,也可以结合merge()和groupby一起用,满足更复杂的需求。

二、处理Excel大型数据集,筛选含特定重复值的数据

面对大型数据集(几万甚至几十万行),手动在Excel里操作容易卡顿,这里给你两种实用方案:

方案1:用Python高效处理(支持xlsx/csv/xls)

用pandas读取文件后,精准筛选出重复行,速度比Excel界面快很多:

# 读取文件:csv用read_csv,xlsx用read_excel,xls需要指定engine='xlrd'(需安装xlrd<2.0版本)
# 大型文件可以加chunksize分批读取,避免内存不足
df = pd.read_excel('large_dataset.xlsx')  # 读取xlsx
# df = pd.read_csv('large_dataset.csv')  # 读取csv
# df = pd.read_excel('large_dataset.xls', engine='xlrd')  # 读取xls

# 筛选出Name和No.都重复的所有行(keep=False保留所有重复行,包括第一次出现的)
duplicate_rows = df[df.duplicated(subset=['Name', 'No.'], keep=False)]

# 把结果保存到新文件
duplicate_rows.to_excel('filtered_duplicates.xlsx', index=False)

方案2:用Excel自带工具操作(适合不想写代码的情况)

如果一定要用Excel界面,推荐用Power Query处理大型数据,比普通操作高效太多:

  1. 点击「数据」→「获取数据」→「从文件」,选择你的xlsx/csv/xls文件导入Power Query编辑器;
  2. 在编辑器中,选中Name和No.列,点击「主页」→「删除重复项」旁边的下拉箭头→「保留重复项」;
  3. 确认后点击「关闭并上载」,就能得到只包含重复值的数据集。

如果数据量不算特别大,也可以用条件格式标记后筛选:选中目标列→「开始」→「条件格式」→「突出显示单元格规则」→「重复值」,标记后筛选高亮的单元格即可。

内容的提问来源于stack exchange,提问作者A.Code.1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:16:36