如何统计Pandas DataFrame中某列仅出现一次的唯一值数量?
统计Pandas DataFrame中某列仅出现一次的值的数量
要统计DataFrame某列中仅出现一次的值的数量,你可以借助value_counts()方法先统计每个值的出现频次,再筛选出频次为1的项并计数,具体实现如下:
核心步骤
- 使用
df['列名'].value_counts()获取该列每个值的出现次数,返回结果是一个Series(索引为列值,值为对应出现次数); - 筛选出其中次数等于1的项,再用
count()统计这些项的数量。
针对你的示例代码实现
import pandas as pd technologies = { 'Courses':["Spark","PySpark","Python","Pandas","Python","Spark","Pandas","AWS","Spark"], 'Fee' :[20000,25000,22000,30000,25000,20000,30000,50000,20000], 'Duration':['30days','40days','35days','50days','40days','30days','50days','90days','30days'], 'Discount':[1000,2300,1200,2000,2300,1000,2000,1500,1000] } df = pd.DataFrame(technologies) # 统计Discount列仅出现一次的值的数量 counts = df['Discount'].value_counts() unique_once_count = counts[counts == 1].count() print(unique_once_count) # 输出:2
一行式简化写法
如果你喜欢更简洁的代码,可以把步骤合并为一行:
unique_once_count = df['Discount'].value_counts()[lambda x: x == 1].count()
额外:获取仅出现一次的值本身
如果需要拿到这些仅出现一次的值的列表,可以这样做:
unique_once_values = counts[counts == 1].index.tolist() print(unique_once_values) # 输出:[1200, 1500]
内容的提问来源于stack exchange,提问作者user3624000
相关产品推荐
相关产品推荐

