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

如何查找Pandas DataFrame中指定列取值不成对出现的行

Pandas 筛选 column2 取值出现次数为奇数的行方案

你可以通过统计column2每个取值的出现次数,过滤出次数为奇数的取值后匹配原表即可实现需求,2万行数据量下运行无性能压力。

方法1:可读性较高的分步写法

import pandas as pd

# 统计column2每个取值的出现次数
val_counts = df['column2'].value_counts()
# 筛选出出现次数为奇数的取值列表
odd_vals = val_counts[val_counts % 2 == 1].index
# 过滤原表得到结果
result = df[df['column2'].isin(odd_vals)]

方法2:一行代码简洁写法

用groupby+transform直接在原表生成统计标签过滤:

result = df[df.groupby('column2')['column2'].transform('count') % 2 == 1]

特殊场景处理

如果某个取值出现3/5等奇数次数,上述方法会返回该取值对应的所有行,如果你只需要保留每个奇数取值的1行,可在上述结果后增加去重逻辑:

# keep='first'保留第一个出现的行,keep='last'保留最后一个出现的行
result = result.drop_duplicates(subset='column2', keep='last')

用你给出的示例数据测试,上述代码输出完全符合预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:27:01