pandas中Series与DataFrame的唯一值、值计数及成员资格判定详解
本文详细介绍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中关于唯一值、值计数以及成员资格判定的核心示例,希望能为读者提供实用的参考,欢迎持续关注以获取更多技术支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









