zoukankan      html  css  js  c++  java
  • Pandas 数据结构Series:基本概念及创建

    Series:"一维数组"

    1. 和一维数组的区别

    # Series 数据结构
    # Series 是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数,Python对象等),轴标签统称为索引
    
    s = pd.Series(np.random.rand(5))
    print(s)        #从输出可见区别于数组,有了标签。Series = 一维数组+标签组成
    print(type(s))
    # 查看数据、数据类型
    
    print(s.index,type(s.index))
    print(s.values,type(s.values))
    # .index查看series索引,类型为rangeindex
    # .values查看series值,类型是ndarray
    
    # 核心:series相比于ndarray,是一个自带索引index的数组 → 一维数组 + 对应索引
    # 所以当只看series的值的时候,就是一个ndarray
    # series和ndarray较相似,索引切片功能差别不大
    # series和dict相比,series更像一个有顺序的字典(dict本身不存在顺序),其索引原理与字典相似(一个用key,一个用index)

    运行结果:

    0    0.732950
    1    0.147740
    2    0.219600
    3    0.038931
    4    0.910124
    dtype: float64
    <class 'pandas.core.series.Series'>
    RangeIndex(start=0, stop=5, step=1) <class 'pandas.core.indexes.range.RangeIndex'>
    [0.73295047 0.14774017 0.21959958 0.03893087 0.9101244 ] <class 'numpy.ndarray'>

    2. 标签可以多元化,不一定为数字

    import pandas as pd
    S = pd.Series([99,66,78],index = ['Jone','Tom','James'])
    print(S)
    print(S.loc['James'])  # 用标签去求对应的值
    print(S.iloc[0])     #后面会讲

    输出:

    Jone     99
    Tom      66
    James    78
    dtype: int64
    78
    99

    3. Series 的创建方法:

    (1)由字典创建

    # Series 创建方法一:由字典创建,字典的key就是index,values就是values
    
    dic = {'a':1 ,'b':2 , 'c':3, '4':4, '5':5}
    s = pd.Series(dic)
    print(s)
    # 注意:key肯定是字符串,假如values类型不止一个会怎么样? → dic = {'a':1 ,'b':'hello' , 'c':3, '4':4, '5':5}
    #如果值有一个是字符串,那么全都是字符串类型的了

    输出结果:

    4    4
    5    5
    a    1
    b    2
    c    3
    dtype: int64

    (2)由一维数组创建

    # Series 创建方法二:由数组创建(一维数组)
    
    arr = np.random.randn(5)
    s = pd.Series(arr)
    print(arr)
    print(s)
    # 默认index是从0开始,步长为1的数字
    
    s = pd.Series(arr, index = ['a','b','c','d','e'],dtype = np.object)
    print(s)
    # index参数:设置index,长度保持一致
    # dtype参数:设置数值类型

    输出结果:

    [-2.56328023  0.87233579  0.47630666  1.91715736 -1.26924024]
    0   -2.563280
    1    0.872336
    2    0.476307
    3    1.917157
    4   -1.269240
    dtype: float64
    a    -2.56328
    b    0.872336
    c    0.476307
    d     1.91716
    e    -1.26924
    dtype: object

    (3)由序列创建

    s = pd.Series([11,22,12,56,78,31])    #由序列创建
    s

    输出结果:

    0    11
    1    22
    2    12
    3    56
    4    78
    5    31
    dtype: int64

    4. 名称属性:“name"

    # Series 名称属性:name
    
    s1 = pd.Series(np.random.randn(5))
    print(s1)
    print('-----')
    s2 = pd.Series(np.random.randn(5),name = 'test')
    print(s2)
    print(s1.name, s2.name,type(s2.name))
    # name为Series的一个参数,创建一个数组的 名称
    # .name方法:输出数组的名称,输出格式为str,如果没用定义输出名称,输出为None
    
    s3 = s2.rename('hehehe')
    print(s3)
    print(s3.name, s2.name)
    # .rename()重命名一个数组的名称,并且新指向一个数组,原数组不变

    输出结果:

    0   -1.285306
    1   -0.586416
    2   -1.966362
    3   -1.507387
    4    0.622088
    dtype: float64
    -----
    0   -0.763427
    1   -1.588831
    2   -1.676116
    3    0.453159
    4   -0.874990
    Name: test, dtype: float64
    None test <class 'str'>
    0   -0.763427
    1   -1.588831
    2   -1.676116
    3    0.453159
    4   -0.874990
    Name: hehehe, dtype: float64
    hehehe test

    小练习:分别由字典、数组的方式,创建以下要求的Series

    import pandas as pd
    #(1)用字典创建
    dic = {'Jack0':90,'Marry':92.,'Tom':89.0,'Zack':65.}
    d = pd.Series(dic,name = '作业1')
    print(d,'
    ')
    
    #(2)直接写
    s = pd.Series([90.0,92.0,89.0,65.0],index = ['Jack','Marry','Tom','Zack'],name = "作业1")
    print(s)
  • 相关阅读:
    第十次作业
    java第九次作业
    优秀的计算机编程类博客 和 文章
    SQLAlchemy使用总结
    Go Web
    beego
    项目注意事项
    爬虫
    Linux笔记
    计算机英语
  • 原文地址:https://www.cnblogs.com/carlber/p/9909869.html
Copyright © 2011-2022 走看看