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

如何使用Pandas筛选出同一账户代码对应多种不同描述的DataFrame记录

解决方案:筛选多描述的账户代码记录

这问题我之前处理过类似的,用Pandas的分组统计+过滤就能轻松解决,给你一步步拆解:

1. 先构造可测试的示例数据

先把你给出的示例输入转换成可直接运行的Pandas DataFrame:

import pandas as pd

data = {
    "Acc. Code": ["0001", "0002", "0002", "0003", "0003", "0004", "0005", "0006", "0006", "0006", "0007"],
    "Description": ["Description 1", "Description 2", "Description 2", "Description 3", "Desc. 3", "Description 4", "Description 5", "Description 6", "Desc. 6", "desc. Six", "Description 1"]
}
df = pd.DataFrame(data)

2. 定位存在多描述的账户代码

我们先按Acc. Code分组,统计每个账户对应的唯一Description数量,再筛选出数量大于1的账户:

# 统计每个账户的唯一描述数
acc_desc_unique_counts = df.groupby("Acc. Code")["Description"].nunique()
# 提取出有多个不同描述的账户代码
multi_desc_accs = acc_desc_unique_counts[acc_desc_unique_counts > 1].index

3. 过滤原DataFrame得到目标记录

最后用这些账户代码去过滤原DataFrame,就能得到所有同一账户对应多种描述的记录:

result_df = df[df["Acc. Code"].isin(multi_desc_accs)]
print(result_df)

运行后输出的结果和你期望的完全一致:

Acc. Code     Description
3      0003  Description 3
4      0003        Desc. 3
7      0006  Description 6
8      0006        Desc. 6
9      0006       desc. Six

补充小技巧

如果需要忽略大小写判断描述是否重复(比如想把Desc. 6和desc. Six视为同一种),可以先对Description列做小写转换后再统计:

acc_desc_unique_counts = df.groupby("Acc. Code")["Description"].apply(lambda x: x.str.lower().nunique())

内容的提问来源于stack exchange,提问作者WRL41225

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 06:02:40