• pandas中的数据结构


    pandas的数据结构Series和DataFream

            pandas的数据结构中有两大核心,分别是Series与DataFrame。其中Series是一维数组,Series可以保存多种数据类型的数据,如布尔值、字符串、数字类型等。DataFrame是一种二维的表格形式的数据结构,类似于Excel表格。

    Series

    Series对象

    创建Series对象

    在创建Series对象时,只需要将数组形式的数据传入Series对象的构造函数Series()中即可。如下所示:

    import pandas as pd #导入pandas模块,并将pandas模块命名为pd
    data = ["A","B","C","D"]#创建数组形式的数据data
    s = pd.Series(data) #调用pandas模块中Series对象的构造方法Series()创建Series对象,并将data传入。
    print(s)#打印Series对象内容
    
    • 1
    • 2
    • 3
    • 4

    【运行结果】
    在这里插入图片描述
    【说明】上述运行结果中,左侧的数字0-3列为索引,右侧的字母A-D列为索引对应的元素。Series对象在没有指定索引时,将默认生成从0开始依次递增的索引值。


    在创建Series对象时,是可以人为指定索引项的,例如指定索引项为a、b、c、d。示例代码如下:

    import pandas as pd #导入pandas模块
    data = ["A","B","C","D"]#创建数组形式的数据data
    index00 = ["a","b","c","d"]#自定义索引
    s = pd.Series(data,index=index00) #调用pandas模块中Series对象的构造方法Series()创建Series对象,并将data传入。将提前指定好的索引列index00赋值给index属性。
    print(s)#打印Series对象内容
    
    • 1
    • 2
    • 3
    • 4
    • 5

    【运行结果】
    在这里插入图片描述

    获取Series对象中的数据
    获取Series对象中的索引数组和元素数组

    在访问Series对象中的数据时,可以单独访问索引数组或者是元素数组。


    没有自定义索引项的时候,分别打印索引数组和数组元素的结果如下

    import pandas as pd #导入pandas模块
    data = ["A","B","C","D"]#创建数组形式的数据data
    s = pd.Series(data) #调用pandas模块中Series对象的构造方法Series()创建>Series对象,并将data传入。
    print("索引数组为:",s.index)#打印Series对象的索引数组
    print("元素数组为:",s.values)#打印Series对象的元素数组
    
    • 1
    • 2
    • 3
    • 4
    • 5

    【运行结果】
    在这里插入图片描述
    【说明】
    打印出的索引数组显示为: RangeIndex(start=0, stop=4, step=1) 意思是:范围索引(从0开始,以4为止,步长为1) 即:0,1,2,3,4。


    自定义索引项的时候,分别打印索引数组和元素数组的结果如下

    import pandas as pd #导入pandas模块
    data = ["A","B","C","D"]#创建数组形式的数据data
    index00 = ["a","b","c","d"]#自定义索引项
    s = pd.Series(data,index=index00) #调用pandas模块中Series对象的构造方法Series()创建Series对象,并将data传入。将提前指定好的索引项index00赋值给index属性。
    print("索引数组为:",s.index)#打印Series对象的索引数组
    print("元素数组为:",s.values)#打印Series对象的元素数组
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    【运行结果】
    在这里插入图片描述

    获取指定索引所对应的数组元素

    如果需要获取指定索引值的数组元素可以直接通过 Series对象[下标]或者Series对象["索引值"] 的方式进行数组对象的获取。


    没有自定义索引项的情况下,下标默认从0开始。

    import pandas as pd #导入pandas模块
    data = ["A","B","C","D"]#创建数组形式的数据data
    s = pd.Series(data) #调用pandas模块中Series对象的构造方法Series()创建>Series对象,并将data传入。
    print("下标为0的数组元素为:",s[0])#打印下标为0对应的数组元素
    print("下标为3的数组元素为:",s[3])#打印下标为3对应的数组元素
    
    • 1
    • 2
    • 3
    • 4
    • 5

    【运行结果】
    在这里插入图片描述


    自定义索引项的情况下获取数组元素,根据自定义的索引值自由获取。

    import pandas as pd #导入pandas模块
    data = ["A","B","C","D"]#创建数组形式的数据data
    index00 =["a","b","c","d"]#自定义索引项
    s = pd.Series(data,index=index00) #调用pandas模块中Series对象的构造方法Series()创建Series对象,并将data传入。将提前指定好的索引列index00赋值给index属性。
    print("索引值为a的数组元素为:",s["a"])#打印索引值为a对应的数组元素
    print("索引值为d的数组元素为:",s["d"])#打印索引值为d对应的数组元素
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    【运行结果】
    在这里插入图片描述

    获取多个索引值所对应的数组元素

    1、如果需要获取多个索引值对应的数组元素时,可以指定下标范围

    import pandas as pd #导入pandas模块
    data = ["A","B","C","D"]#创建数组形式的数据data
    index00 =["a","b","c","d"]#自定义索引项
    s = pd.Series(data,index=index00) #调用pandas模块中Series对象的构造方法Series()创建Series对象,并将data传入。将提前指定好的索引列index00赋值给index属性。
    print("通过指定下标范围打印索引值为b到c的数组元素为:\n",s[1:2])#通过指定下标范围打印索引值b到c所对应的数组元素
    
    • 1
    • 2
    • 3
    • 4
    • 5

    【运行结果】
    在这里插入图片描述


    2、如果需要获取多个索引值对应的数组元素时,可以通过指定多个索引的方式获取Series对象[["索引值m","索引值n",...]]

    import pandas as pd #导入pandas模块
    data = ["A","B","C","D"]#创建数组形式的数据data
    index00 =["a","b","c","d"]#自定义索引
    s = pd.Series(data,index=index00) #调用pandas模块中Series对象的构造方法Series()创建Series对象,并将data传入。将提前指定好的索引列index00赋值给index属性。
    print("索引值为b、a、d的数组元素分别为:\n",s[["b","a","d"]])#打印索引值为b、a、d分别对应的数组元素。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    【运行结果】
    在这里插入图片描述

    修改元素值

    在修在Series对象的元素值时,同样可以通过指定下标或者指定索引的方式来实现。Series对象[下标]=值 或 Series对象["索引值"]=值

    import pandas as pd #导入pandas模块
    data = ["A","B","C","D"]#创建数组形式的数据data
    index00 =["a","b","c","d"]#自定义索引值
    s = pd.Series(data,index=index00) #调用pandas模块中Series对象的构造方法Series()创建Series对象,并将data传入。将提前指定好的索引列index00赋值给index属性。
    s[0]="E" #将下标为0的元素值修改为E
    print("将下标为0的元素值修改为E:\n",s)
    s["b"]="F" #将索引值为b的元素值修改为F
    print("将索引值为b的元素值修改为F:\n",s)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    【运行结果】

    在这里插入图片描述

    DataFrame

    DataFrame对象

    创建DataFrame对象

            在创建DataFrame对象时,需要通过字典来实现DataFrame对象的创建。将字典形式的数据传入DataFrame对象的构造函数DataFrame()中即可。字典形式的数据中每列的名称为键,而每个键对应的是一个数组,这个数组作为值。如下所示:

    import pandas as pd #导入pandas模块
    #创建字典形式的数据
    data = {"A":[1,2,3],
            "B":[4,5,6],
            "C":[7,8,9],}
    #将数据传入DataFrame的构造方法DataFrame()中来创建DataFrame对象
    data_frame = pd.DataFrame(data)
    #打印创建好的DataFrame对象
    print(data_frame)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    【运行结果】
    在这里插入图片描述
    【说明】
    运行结果中左侧单独的数字列为索引,在没有指定特定的索引时,DataFrame对象默认的索引将从0开始递增。右侧A、B、C列名为键,列名下方对应的数组为值。


    在创建DataFrame对象时可以单独指定索引名称,指定方式与Series对象类似。实例如下:

    import pandas as pd #导入pandas模块
    #创建字典形式的数据
    data = {"A":[1,2,3],
           "B":[4,5,6],
           "C":[7,8,9],}
    #自定义索引
    index00 = ["e","f","g"]
    #将数据传入DataFrame的构造方法DataFrame()中来创建DataFrame对象。>并将自定义好的索引index00赋值给index属性
    data_frame = pd.DataFrame(data,index=index00)
    #打印创建好的DataFrame对象
    print(data_frame)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    【运行结果】
    在这里插入图片描述


    **如果创建好了字典数据之后,不想让DataFrame对象中完全包含字典里的数据,可以在创建DataFrame对象时指定需要的数据的列名来创建DataFrame对象。**示例如下:

    import pandas as pd #导入pandas模块
    #创建字典形式的数据
    data = {"A":[1,2,3],
           "B":[4,5,6],
          "C":[7,8,9],}
    #将指定列名的数据传入DataFrame的构造方法DataFrame()中来创建>DataFrame对象。
    data_frame = pd.DataFrame(data,columns=["B","C"])
    #打印创建好的DataFrame对象
    print(data_frame)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    【运行结果】
    在这里插入图片描述

    DataFrame对象中的增、删、改、查操作

    DataFrame对象是pandas模块中最常用的对象,该对象所呈现出的数据与Excel表格相似。所以在实现数据的统计与分析前需要了解如何操作DataFrame对象中的各种数据,例如数据的增、删、改、查等。

    增添数据

    方法:DataFrame对象[列名] = [数据值1,数据值2,数据值3,......]
    案例:创建一个DataFrame对象,并向DataFrame对象中添加一条数据。

    #案例:向DataFrame对象中增加数据
    # 解法:1、先创建出DataFrame对象 2、按照格式向DataFrame对象中添加数据
    import pandas as pd;#导入pandas数据统计模块
    #1、创建DataFrame对象.(步骤:①、创建字典样式的数据(键值对.键:列名;值:数组)②、将创建>好的数据传入DataFrame对象的构造方法中,返回DataFrame对象)
       #①、创建字典样式的数据
    data = {
       'A':[1,2,3],
       'B':[4,5,6],
       'C':[7,8,9]
    }
       #②、将字典样式的数据传入DataFrame的构造方法DataFrame()中,返回DataFrame对象
    data_fram = pd.DataFrame(data)
    #2、向DataFrame对象中增加数据
    data_fram['D']=[10,11,12]#向DataFrame对象中增添了一条D列数据
    print(data_fram)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    【运行结果】
    在这里插入图片描述
    【说明】显然D列数据被添加进去了

  • 相关阅读:
    kafka简述
    Python发送邮件
    Flameshot源码及分析3 —— gui函数解析
    第51节:cesium 范围查询(含源码+视频)
    办理的流量卡怎么判断是否激活成功?看实名认证还是看充值?
    Halo-Theme-Hao文档:如何设置导航栏?
    apollo学习之:如何测试canbus模块
    企业移动设备管理(MDM)概述
    数据结构——链表
    工作中,Oracle常用函数
  • 原文地址:https://blog.csdn.net/muyuxifeng/article/details/126802111