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

Python中基于大型Excel数据生成分组特征矩阵及筛选重复编号

没问题,我来帮你搞定这个需求!我们可以用Python的pandas库轻松实现——不管你的数据是xlsx、csv还是xls格式都能处理,逻辑清晰且代码容易复用。

具体实现步骤与代码

1. 导入工具并读取数据

首先导入pandas,然后用对应函数读取你的文件:Excel格式(xlsx/xls)用pd.read_excel(),CSV格式用pd.read_csv():

import pandas as pd

# 替换成你的实际文件路径
df1 = pd.read_excel("dataframe1.xlsx")  # 或 pd.read_csv("dataframe1.csv")
df2 = pd.read_excel("dataframe2.xlsx")

2. 筛选同一Name下出现两次的No.

我们需要先锁定同一个Name下,No.出现至少两次的(Name, No.)组合,用分组统计就能快速实现:

# 统计每个(Name, No.)组合的出现次数
pair_counts = df1.groupby(['Name', 'No.']).size().reset_index(name='appear_times')

# 筛选出出现次数≥2的目标组合
target_pairs = pair_counts[pair_counts['appear_times'] >= 2][['Name', 'No.']]

注:这里用df1统计次数是因为你的示例数据中两个DataFrame的重复组合一致;如果实际数据有差异,可以合并df1和df2后再统计。

3. 构建特征矩阵

把两个DataFrame中符合条件的记录筛选出来,再合并成包含Comment和Report的特征矩阵:

# 从df1筛选目标记录,保留Comment列
filtered_df1 = df1.merge(target_pairs, on=['Name', 'No.'], how='inner')
filtered_df1 = filtered_df1[['Name', 'No.', 'Comment']]

# 从df2筛选目标记录,保留Report列
filtered_df2 = df2.merge(target_pairs, on=['Name', 'No.'], how='inner')
filtered_df2 = filtered_df2[['Name', 'No.', 'Report']]

# 合并得到最终特征矩阵
feature_matrix = pd.merge(filtered_df1, filtered_df2, on=['Name', 'No.'], how='outer')

4. 查看最终结果

用你提供的示例数据运行后,输出的特征矩阵会是:

NameNo.CommentReport
Bob2123320Doesn't MatterGreat
Bob2123320SomethingGood

完全符合需求——只保留了Name为Bob、No.为2123320的重复记录,同时整合了Comment和Report两个特征列。

额外小贴士

  • 如果数据里存在同一(Name, No.)对应多条Comment/Report的情况,代码会自动匹配所有对应记录,不会丢失信息;
  • 针对大型数据,pandas的处理效率也能满足需求,无需担心性能问题。

内容的提问来源于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 07:20:29