zoukankan      html  css  js  c++  java
  • Python-Pandas库-数据结构Series用法总结

    一、Pandas数据结构之Series: 类似于表格中的一个列(column),类似于一维数组,语法:

    pd.Series(data,index,dtype,name,copy)

    二、创建Series对象

    点击查看代码
    s = pd.Series(data=np.random.randn(5),index=['a','b','c','d','e'],dtype='float64',name='这是一个Series')
    print(s)
    print(type(s))          #<class 'pandas.core.series.Series'>
    
    #1、通过list创建
    s1 = pd.Series([10, 20, 30, 40])
    print(s1)
    print(type(s1))       #<class 'pandas.core.series.Series'>
    
    #2、通过字典创建
    s2 = pd.Series({'a': 10,'b': 8,'c': 8,'d': 11,'e': 2,'f': 5})
    print(s2)
    print(type(s2))    #<class 'pandas.core.series.Series'>
    
    #3、通过数组创建
    s3 = pd.Series(np.arange(10,15),index=['a','b','c','d','e'])
    print(s3)
    print(type(s3))     #<class 'pandas.core.series.Series'>
    

    三、查看数据

    • 索引及name属性

    点击查看代码
    '''
    测试数据s2:
    a    10
    b     8
    c     8
    d    11
    e     2
    f     5
    dtype: int64
    '''
    #获取索引
    print(s2.index)
    #执行结果:Index(['a', 'b', 'c', 'd', 'e', 'f'], dtype='object')
    
    #获取数据
    print(s2.values)     
    #执行结果:[10  8  9 11  2  5]
    •  选取数据

    点击查看代码
    '''
    测试数据s2: 
    a    10
    b     8
    c     8
    d    11
    e     2
    f     5
    dtype: int64
    '''
    
    #1、通过位置获取数据
    print(s2[0:1])
    print(s2[:2])
    
    #2、通过索引获取数据
    print(s2[['c','d']])
    
    #3、通过boolean indexing获取数据
    print(s2[s2.values>=8])
    print(s2[s2.index != 'a'])

    四、 运算

    • 统计运算

    点击查看代码
    '''
    测试数据s2: 
    a    10
    b     8
    c     8
    d    11
    e     2
    f     5
    dtype: int64
    '''
    
    #统计运算
    print(s2.describe())
    '''
    执行结果:
    count     6.000000        数量
    mean      7.500000        平均值
    std       3.391165        标准差
    min       2.000000        最小值
    25%       5.750000
    50%       8.500000
    75%       9.750000
    max      11.000000        最大值
    dtype: float64
    '''
    print(s2.mean())    #平均值
    print(s2.median())   #中位数
    print(s2.sum())       #求和
    print(s2.std())       #标准差
    print(s2.mode())     #众数(出现最多的数,如果所有数据出现的次数都一样,则没有众数)执行结果:8
    print(s2.sort_values())   #排序
    print(s2.value_counts())   #每个值的数量
    • 数学运算

    点击查看代码
    '''
    测试数据s2: 
    a    10
    b     8
    c     8
    d    11
    e     2
    f     5
    dtype: int64
    '''
    
    print(s2/2)  #除以2
    print(s2 // 2)   #对每个值除以2后取整
    print(s2 % 2 )   #取余
    print(s2 ** 2)   #求平方
    print(np.sqrt(s2))   #求开方
    print(np.log(s2))    #求对数
    
    
    • 对齐计算

    点击查看代码
    #对齐计算
    '''
    测试原数据s2:
    a    10
    b     8
    c     8
    d    11
    e     2
    f     5
    dtype: int64
    '''
    
    #新增的数据与原数据相加
    s2_1 = pd.Series({'a': 10,'b': 20,'d': 30,'e':40,'f':50},name='数值')
    print(s2_1)
    ss = s2 + s2_1
    print(ss)
    '''
    执行结果:
    a    20.0
    b    28.0
    c     NaN
    d    41.0
    e    42.0
    f    55.0
    dtype: float64
    '''

    五、缺失值处理

    点击查看代码
    '''
    测试原数据ss: 
    a    20.0
    b    28.0
    c     NaN
    d    41.0
    e    42.0
    f    55.0
    dtype: float64
    '''
    
    print(ss[ss.notnull()])    #非空值
    print(ss[ss.isnull()])     #空值
    ss = ss.fillna(value=0)    #用默认值填充缺失
    print(ss)

    六、删除/修改值

    点击查看代码
    #删除值
    '''
    测试原数据s2:
    a    10
    b     8
    c     8
    d    11
    e     2
    f     5
    dtype: int64
    '''
    
    s2 = s2.drop('c')
    print(s2)
    
    #修改值
    s2['a'] = 11
    print(s2)
    三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
  • 相关阅读:
    【车】平安车险费用
    【光环国际】掌握项目经理12个工作流程
    【光环国际】500强公司7个项目管理工具
    数据仓库和商业智能演进五个阶段
    【技术与商业案例解读笔记】095:Google大数据三驾马车笔记
    15道最常考的SpringBoot面试题,你都遇到过哪些?
    用户画像4:标签数据开发
    plsql 传参
    shell专题(二):Shell解析器
    shell专题(三):Shell脚本入门
  • 原文地址:https://www.cnblogs.com/deeptester-vv/p/15120080.html
Copyright © 2011-2022 走看看