zoukankan      html  css  js  c++  java
  • Series

    Series是一种类似于一维数组的对象,是由一维数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。

     1 In [1]: from pandas import Series
     2 
     3 In [2]: import pandas as pd
     4 
     5 In [3]: ser = Series([1,2,3,-1,-2])
     6 
     7 In [4]: ser
     8 Out[4]: 
     9 0    1
    10 1    2
    11 2    3
    12 3   -1
    13 4   -2
    14 dtype: int64

    Series的字符串表现形式为:索引在左边,值在右边。由于没有为数据指定索引,会自动创建一个0到N-1(N为数据的长度)的整数型索引。可以通过Series的values和index属性获取其数组表示形式和索引对象。

    1 In [8]: ser.values
    2 Out[8]: array([ 1,  2,  3, -1, -2])
    3 
    4 In [9]: ser.index
    5 Out[9]: RangeIndex(start=0, stop=5, step=1)

    也可以创建对各个数据点进行标记的索引。

     1 In [10]: ser1 = Series([2,3,-4,-5],index = ['a','b','c','d'])
     2 
     3 In [11]: ser1
     4 Out[11]: 
     5 a    2
     6 b    3
     7 c   -4
     8 d   -5
     9 dtype: int64
    10 
    11 In [12]: ser1.index
    12 Out[12]: Index([u'a', u'b', u'c', u'd'], dtype='object')

    与普通的Numpy数组相比,可以通过索引的方式选取Series中的单个或一组值。

    In [13]: ser1['a']
    Out[13]: 2
    
    In [14]: ser1['b'] = 5
    
    In [15]: ser1
    Out[15]: 
    a    2
    b    5
    c   -4
    d   -5
    dtype: int64

    进行算数运算都会保留索引和值之间的连接。

     1 In [19]: ser1
     2 Out[19]: 
     3 a    2
     4 b    5
     5 c   -4
     6 d   -5
     7 dtype: int64
     8 
     9 In [20]: ser1 * 2
    10 Out[20]: 
    11 a     4
    12 b    10
    13 c    -8
    14 d   -10
    15 dtype: int64
    16 
    17 In [21]: ser1[ser1 > 0]
    18 Out[21]: 
    19 a    2
    20 b    5
    21 dtype: int64

    还可以将Series看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。

    1 In [22]: 'a' in ser1
    2 Out[22]: True
    3 
    4 In [23]: 'e' in ser1
    5 Out[23]: False

     如果数据被存放在一个Python字典中,可以直接通过这个字典来创建Series。

     1 In [32]: data = {'Tom':100,'Alia':98,'Abel':80}
     2 
     3 In [33]: datas = Series(data)
     4 
     5 In [34]: datas
     6 Out[34]: 
     7 Abel     80
     8 Alia     98
     9 Tom     100
    10 dtype: int64

    如果只传入一个字典,则结果Series中的索引就是源字典的键。

     1 In [35]: states = ['Call','Tom','Alia','Abel']
     2 
     3 In [36]: sim = Series(datas,index=states)
     4 
     5 In [37]: sim
     6 Out[37]: 
     7 Call      NaN
     8 Tom     100.0
     9 Alia     98.0
    10 Abel     80.0
    11 dtype: float64

    在pandas中,NaN表示缺失值,pandas的isnull和notnull函数用于检测缺失数据。

     1 In [38]: pd.isnull(sim)
     2 Out[38]: 
     3 Call     True
     4 Tom     False
     5 Alia    False
     6 Abel    False
     7 dtype: bool
     8 
     9 In [39]: pd.notnull(sim)
    10 Out[39]: 
    11 Call    False
    12 Tom      True
    13 Alia     True
    14 Abel     True
    15 dtype: bool

    Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系非常密切。

     1 In [42]: sim.name = 'student'
     2 
     3 In [43]: sim.index.name = 'class'
     4 
     5 In [44]: sim
     6 Out[44]: 
     7 class
     8 Call      NaN
     9 Tom     100.0
    10 Alia     98.0
    11 Abel     80.0
    12 Name: student, dtype: float64
  • 相关阅读:
    vue axios前端跨域问题
    DDD的神奇
    开源电子书《WoW C#》
    15项架构原则
    龙芯发布.NET 6.0.100开发者测试版
    国内 Mono 相关文章汇总
    Kubernetes应用程序开发认证(CKAD) 经验分享
    [LeetCode] 1281. Subtract the Product and Sum of Digits of an Integer 整数的各位积和之差
    我(webabcd)的文章索引
    上周热点回顾(1.31.9)
  • 原文地址:https://www.cnblogs.com/yu-1104/p/7886398.html
Copyright © 2011-2022 走看看