pandas中Series与DataFrame的唯一值、值计数及成员资格判定详解

周叙
周叙
发布时间:2026-10-13 | 3人浏览过
原创

本文详细介绍pandas中Series和DataFrame的唯一值判断、值计数统计以及成员资格判定方法。通过is_unique获取唯一性,利用value_counts统计频次,并使用isin进行子集筛选与填充操作,提供完整代码示例供参考。

在pandas库中,处理Series数据时,判断其唯一值是一个常见需求。

 s = Series([3,3,1,2,4,3,4,6,5,6])
 #判断Series中的值是否重复,False表示重复
 print(s.is_unique)
 #False
 #输出Series中不重复的值,返回值没有排序,返回值的类型为数组
 print(s.unique())
 #[3 1 2 4 6 5]
 print(type(s.unique()))
 #<class 'numpy.ndarray'>
 #统计Series中重复值出现的次数,默认是按出现次数降序排序
 print(s.value_counts())
 '''
 3 3
 6 2
 4 2
 5 1
 2 1
 1 1
 '''
 #按照重复值的大小排序输出频率
 print(s.value_counts(sort=False))
 '''
 1 1
 2 1
 3 3
 4 2
 5 1
 6 2
 '''

接下来探讨如何判断数据中的成员资格,这涉及Series和DataFrame两种数据结构。

首先针对Series类型,检查其是否包含特定元素。

 s = Series([5,5,6,1,1])
 print(s)
 '''
 0 5
 1 5
 2 6
 3 1
 4 1
 '''
 #判断矢量化集合的成员资格,返回一个bool类型的Series
 print(s.isin([5]))
 '''
 0  True
 1  True
 2 False
 3 False
 4 False
 '''
 print(type(s.isin([5])))
 #<class 'pandas.core.series.Series'>
 #通过成员资格方法选取Series中的数据子集
 print(s[s.isin([5])])
 '''
 0 5
 1 5
 '''

随后针对DataFrame类型,同样进行成员资格的判定与筛选。

 a = [[3,2,6],[2,1,4],[6,2,5]]
 data = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
 print(data)
 '''
  one two three
 a 3 2  6
 b 2 1  4
 c 6 2  5
 '''
 #返回一个bool的DataFrame
 print(data.isin([1]))
 '''
   one two three
 a False False False
 b False True False
 c False False False
 '''
 #选取DataFrame中值为1的数,其他的为NaN
 print(data[data.isin([1])])
 '''
  one two three
 a NaN NaN NaN
 b NaN 1.0 NaN
 c NaN NaN NaN
 '''
 #将NaN用0进行填充
 print(data[data.isin([1])].fillna(0))
 '''
  one two three
 a 0.0 0.0 0.0
 b 0.0 1.0 0.0
 c 0.0 0.0 0.0
 '''

上述内容涵盖了pandas中关于唯一值、值计数以及成员资格判定的核心示例,希望能为读者提供实用的参考,欢迎持续关注以获取更多技术支持。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表