• 您当前位置:网站首页 >> Python学习 >> Python 数据分析模块 Pandas 之 Series 数据
  • Python 数据分析模块 Pandas 之 Series 数据

    iCoA首席特工 逍遥峡谷 发布:2020-02-05 更新:2020-02-09 浏览0条评论
    内容简介

    相关关键词:Python   Pandas   Series   数据分析  

    本文链接:https://www.icoa.cn/a/900.html

    本站文章如非注明皆为原创,未经允许禁止转载。如有问题可以给我留言或发邮件。

    上一篇文章介绍了 Numpy 第三方库的使用,今天介绍 Python 的另外一个数据分析相关的第三方库 Pandas。

    更多点击:Python学习日志目录

    Pandas 的优势是:

    数据结构非常快速高效、数据处理功能比较智能、文件存储功能非常方便、科研和商业应用很广泛。

    安装 Pandas

    pip install pandas -i https://pypi.douban.com/simple

    导入 Pandas 模块,同样起一个别名pd,方便后面使用

    import pandas as pd

    Pandas 的数据结构

    分两种,Series 和 DataFrame

    Series 数据

    只有一列数据

    索引数据
    A13
    C11
    D15
    X20

    DataFrame 数据

    有多列数据

    索引数据1数据2数据3
    0Pulp Fiction19946
    1The Shawshank Redemption19944
    2The Godfather19727


    本文主要介绍 Pandas 里的 Series 数据,后面会介绍到 DataFrame 数据的知识。

    创建 Series 数据

    data = pd.series([1,2,3,4])
    print(data)

    也就是 Series 数据里面填充的数据是列表格式的。

    运行结果:

    0    1

    1    2

    2    3

    3    4

    dtype: int64

    其中第一列是索引,第二列是存储的数据。

    读取里面的数据和索引的方法:

    print(data.values)
    print(data.index)

    输出结果:

    [1 2 3 4]

    RangeIndex(start=0, stop=4, step=1)


    创建特殊索引的 Series 数据

    如果不想使用数字索引的话,可以在创建的时候,设定索引的方式:

    data = pd.Series([1,2,3,4],index=['a','b','c','d'])
    print(data)
    print(data.values)
    print(data.index)

    输出结果:

    a    1

    b    2

    c    3

    d    4

    dtype: int64

    [1 2 3 4]

    Index(['a', 'b', 'c', 'd'], dtype='object')

    这种就类似于字典,一个索引对应一个数据。


    修改 Series 数据的索引方式

    比如对于一个已经存在的 Series 数据,我们想要修改它的索引方式:

    data = pd.Series([1,2,3,4])
    data.index = ['a','b','c','d']
    print(data)

    输出结果:

    a    1

    b    2

    c    3

    d    4

    dtype: int64


    获取 Series 数据的长度,跟列表一样

    len(data)


    获取单个数据:

    data = pd.Series([1,2,3,4])
    data.index = ['a','b','c','d']
    print(data['b'])

    运行结果:2


    获取多个数据:

    data = pd.Series([1,2,3,4])
    data.index = ['a','b','c','d']
    print(data[['a','b','d']])

    运行结果:

    a    1

    b    2

    d    4

    dtype: int64


    获取连续多个数据(切片的方式):

    data = pd.Series([1,2,3,4])
    data.index = ['a','b','c','d']
    print(data['a':'c'])
    print(data[0:2])

    运行结果:

    a    1

    b    2

    c    3

    dtype: int64

    a    1

    b    2

    dtype: int64

    注意,特殊索引的 Series 数据也可以用数字索引读取,而使用切片读取的时候,特殊索引跟数字索引结果是不一样的。

    如上面的结果,从'a'到'c',是包含'a'位和'c'位的数据;而从0到2,是不包含2号位的数据的


    统计 Series 数据中,重复数据的个数

    data = pd.Series([1,2,3,4,2,5,1,4,2])
    print(data.value_counts())

    运行结果:

    2    3

    4    2

    1    2

    5    1

    3    1

    dtype: int64


    判断有没有某个索引值

    data = pd.Series([1,2,3,4],index=['a','b','c','d'])
    print('a' in data)

    运行结果:

    True


    前面提到 Series 特殊索引类似于字典(当然字典是无序数据类型)

    我们可以直接通过字典来创建一个 Series 数据

    dict_data = {'Anna':16,'Nina':11,'Elena':3}
    data = pd.Series(dict_data)
    print(data)

    运行结果:

    Anna     16

    Nina     11

    Elena     3

    dtype: int64


    如果创建 Series 数据的时候,索引值比数据多,也可以创建成功

    这时候,多出来的索引值对应的数据为 NaN,相当于没有数据的意思。NaN 是 Not a Number 的缩写。

    dict_data = {'Anna':16,'Nina':11,'Elena':3}
    indexs = ['Anna','Nina','Elena','Fiona']
    data = pd.Series(dict_data, index=indexs)
    print(data)

    运行结果:

    Anna     16.0

    Nina     11.0

    Elena     3.0

    Fiona     NaN

    dtype: float64


    可以用 .isnull() 来判断哪些索引值不存在数据

    print(data.isnull())

    运行结果:

    Anna     False

    Nina     False

    Elena    False

    Fiona     True

    dtype: bool


    同样也可以用 .notnull() 来判断哪些索引值有数据

    print(data.notnull())

    运行结果跟上面正相反。


    同样对 Series 数据进行计算

    print(data * 2)

    运行结果:

    Anna     32.0

    Nina     22.0

    Elena     6.0

    Fiona     NaN

    dtype: float64


    Series 数据可以直接使用 Numpy 进行计算(当然需要提前引入 numpy 模块)

    import numpy as np
    print(np.square(data))

    运行结果:

    Anna     256.0

    Nina     121.0

    Elena      9.0

    Fiona      NaN

    dtype: float64


    Series 数据之间进行可以进行计算,会根据索引值进行对应计算

    dict_data_1 = {'Anna':16,'Nina':11,'Elena':3}
    dict_data_2 = {'Anna':7,'Nina':8,'Elena':9,'Fiona':10}
    indexs = ['Anna','Nina','Elena','Fiona']
    data1 = pd.Series(dict_data_1, index=indexs)
    data2 = pd.Series(dict_data_2, index=indexs)
    print(data2)
    print('----')
    print(data1 + data2)

    运行结果:

    Anna      7

    Nina      8

    Elena     9

    Fiona    10

    dtype: int64

    ----

    Anna     23.0

    Nina     19.0

    Elena    12.0

    Fiona     NaN

    dtype: float64

    注意,如果其中一个 Series 的某个索引值对应的数据是 NaN,那么对应计算的时候,计算结果还是 NaN.


    可以给 Series 数据起一个名称,也可以给索引值起一个名称

    data.name = 'Girls Data'
    data.index.name = 'Girls'
    print(data)

    运行结果:

    Girls

    Anna     16.0

    Nina     11.0

    Elena     3.0

    Fiona     NaN

    Name: Girls Data, dtype: float64


    因为内容比较多,所以 Pandas 的 DataFrame 数据将会在下一篇文章来介绍。


    本文链接:https://www.icoa.cn/a/900.html
    关键词: Python   Pandas   Series   数据分析  


    如果您愿意支持本站,欢迎点击打赏哦~



    下一篇:Python 数据分析模块 Pandas 之 DataFrame 数据

    上一篇:Python 数据分析第三方库 Numpy 的安装和使用


    - 相关文章 -


    Python 数字与数字型运算 - 2020-09-08

    Python 基础知识之数据类型 - 2020-09-07

    Python 学习中非常好用的编辑器 Sublime Text 3 - 2020-09-07

    Python 基础知识之变量 - 2020-09-03

    Python 详细安装步骤图解 - 2020-09-01

    Python 数据分析模块 Pandas 之 DataFrame 数据 - 2020-02-09

    Python 数据分析模块 Pandas 之 Series 数据 - 2020-02-05

    Python 数据分析第三方库 Numpy 的安装和使用 - 2020-02-03


    - 文章评论 -




    9706

    [由于政策原因,您的留言如果提交成功后,需要审核才能展示,请改天再来查看,请不要重复提交,谢谢支持!]

    - 最新评论[0条评论] -


    [>>>点击查看更多评论]

    版权所有©逍遥峡谷 - 星际中心超自然局 · 地球总部 | 逍遥峡谷 · 酷品优选
    Copyright©Interstellar Central Occult Agency (I.C.O.A)
    本局纯属虚构,如有雷同,纯属巧合

    冀公网安备13011102001055号 · 冀ICP备06033848号