码迷,mamicode.com
首页 > 编程语言 > 详细

二、Python开发---37、pandas(5)

时间:2020-03-08 20:26:35      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:频率   max   集合   obj   获取值   python   name   type   port   

唯一值、值计数以及成员资格

  unique方法用于获取Series中的唯一值数组(去重数据后的数组)

  value_counts方法用于计算一个Series中各值的出现频率

  isin方法用于判断矢量化集合的成员资格,可用于选取Series中或者DataFrame中列中数据的子集

import pandas as pd
# 获取唯一值
ser01=pd.Series([a,c,b,d,a,b])
print(ser01.unique())                       #输出为 [‘a‘ ‘c‘ ‘b‘ ‘d‘]
# 值计数
print(ser01.value_counts())
‘‘‘
输出为   a    2
        b    2
        d    1
        c    1
        dtype: int64
‘‘‘
print(ser01.value_counts(ascending=False)) # 按照频率的高到低排序(默认)
‘‘‘
输出为   a    2
        b    2
        d    1
        c    1
        dtype: int64
‘‘‘
print(ser01.value_counts(ascending=True))  # 按照频率的低到高排序
‘‘‘
输出为   c    1
        d    1
        b    2
        a    2
        dtype: int64
‘‘‘
# 成员资格
print(ser01.isin([b,c]))
‘‘‘
输出为   0    False
        1     True
        2     True
        3    False
        4    False
        5     True
        dtype: bool
‘‘‘
print(ser01[ser01.isin([b,c])])
‘‘‘
输出为   1    c
        2    b
        5    b
        dtype: object
‘‘‘

层次索引

  在某一个方向拥有多个(两个及两个以上)索引级别

  通过层次化索引,pandas能够以较低维度形式处理高纬度的数据

  通过层次化索引,可以按照层次统计数据

  层次索引包括Series层次索引和DataFrame层次索引

import pandas as pd
#Series层次索引
ser02=pd.Series([12034,12222,33333,55555],index=[[2001,2001,2001,2002],[苹果,香蕉,西瓜,苹果]])
print(ser02)
‘‘‘
输出为   2001  苹果    12034
              香蕉    12222
              西瓜    33333
        2002  苹果    55555
        dtype: int64
‘‘‘
#DataFrame层次索引
df02=pd.DataFrame({
                    year:[2001,2001,2001,2002],
                    fruit:[苹果,香蕉,西瓜,苹果],
                    production:[12034,12222,33333,55555]
                  })
print(df02)
‘‘‘
输出为      year   fruit  production
        0  2001    苹果       12034
        1  2001    香蕉       12222
        2  2001    西瓜       33333
        3  2002    苹果       55555
‘‘‘
df02=df02.set_index([year,fruit])   #层次化索引,设置为索引,series与DataFrame转化
print(df02)
‘‘‘
输出为   year    fruit      production
        2001     苹果        12034
                 香蕉        12222
                 西瓜        33333
        2002     苹果        55555
‘‘‘
print(df02.loc[2001,苹果])            #根据索引获取值
‘‘‘                                
输出为   production    12034
        Name: (2001, 苹果), dtype: int64
‘‘‘
print(df02.sum(level=year))
‘‘‘
输出为   year       production     
        2001       57589
        2002       55555
‘‘‘
print(df02.mean(level=fruit))
‘‘‘
输出为  fruit     production       
        苹果        33794.5
        香蕉        12222.0
        西瓜        33333.0
‘‘‘
print(df02.max(level=[year,fruit]))
‘‘‘
输出为   year  fruit   production       
        2001   苹果        12034
               香蕉        12222
               西瓜        33333
        2002   苹果        55555
‘‘‘

 

二、Python开发---37、pandas(5)

标签:频率   max   集合   obj   获取值   python   name   type   port   

原文地址:https://www.cnblogs.com/lanzhijie/p/12444197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!