• Pandas初体验之数据结构——Series和DataFrame


      Pandas是为了解决数据分析任务而创建的,纳入了大量的库和标准数据模型,提供了高效地操作大型数据集所需的工具。

      对于Pandas包,在Python中常见的导入方法如下:

    from pandas import Series,DataFrame
    import pandas as pd

      首先,我们需要对于SeriesDataFrame有个基本的了解:

      Series:一维数组,类似于Python中的基本数据结构list,区别是Series只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。就像数据库中的列数据。

      DataFrame: 二维的表格型数据结构。很多功能与R语言中的data.frame类似。可以将DataFrame理解为Series的容器。

      接下来我们通过实例分别了解SeriesDataFrame。

      1、Series

      PandasSeries对象是一个带索引数据构成的一维数组。可以用一个数组创建Series对象,如下所示:

    In [1] : data = pd.Series([1,2,3,4])
    In [2] : data
    Out[2] :0    1
            1    2
            2    3
            3    4

      Series对象将一组数据和一组索引绑定在一起,我们可以通过values属性和index属性获取数据。values属性返回的结果与Numpy数组类似。index属性返回的是一个类型为pd.index的类数组对象。和Numpy数组一样,数据可以通过Python的中括号索引标签来获取:

    In [3]: data.values
    Out[3]:array([1,2,3,4])
    In [4]: data.index
    Out[4]:Int64Index([0,1,2,3])
    In [5]:data2=Series([4,7,-5,3],index=['d','b','a','c'])
    In [6]:data2
    Out[6]:
    d 1
    b 2
    a 3
    c 4        

      如果你有一些数据在一个Python字典中,你可以通过传递字典来从这些数据创建一个Series,只传递一个字典的时候,结果Series中的索引将是排序后的字典的键。

    In [7]:sdata={'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}
    In [8]:obj3=Series(sdata)
    In [9]:obj3
    Out[9]:
    Ohio   35000
    Texas  71000
    Oregon 16000
    Utah   5000

      实例:

    • 创建一个名为series_aseries数组,当中值为[1,2,5,7],对应的索引为['nu', 'li', 'xue', 'xi']

    • 创建一个名为dict_a的字典,字典中包含如下内容{'ting':1, 'shuo':2, 'du':32, 'xie':44}

    • dict_a字典转化成名为series_bseries数组。

    from pandas import Series,DataFrame
    import  pandas as pd
    
    def create_series():
        '''
        返回值:
        series_a: 一个Series类型数据
        series_b: 一个Series类型数据
        dict_a:  一个字典类型数据
        '''
        a=[1,2,5,7]
        index=['nu','li','xue','xi']
        series_a=Series(a,index)
        dict_a={'ting':1,'shuo':2,'du':32,'xie':44}
        series_b=Series(dict_a)
    
        return series_a,dict_a,series_b

      2、DataFrame

      DataFrame是一个表格型的数据结构,是以一个或多个二维块存放的数据表格(层次化索引),DataFrame既有行索引还有列索引,它有一组有序的列,每列既可以是不同类型(数值、字符串、布尔型)的数据,或者可以看做由Series组成的字典。

      创建:

    dictionary = {'state':['0hio','0hio','0hio','Nevada','Nevada'],
             'year':[2000,2001,2002,2001,2002],
             'pop':[1.5,1.7,3.6,2.4,2.9]}
    frame = DataFrame(dictionary)

      修改行名:

    frame=DataFrame(dictionary,index=['one','two','three','four','five'])

      添加修改:

    frame['add']=[0,0,0,0,0]

      添加Series类型:

    value = Series([1,3,1,4,6,8],index = [0,1,2,3,4,5])
    frame['add1'] = value

      实例:

    • 创建一个五行三列的名为df1DataFrame数组,列名为 [states,years,pops],行名['one','two','three','four','five']

    • df1添加新列,列名为new_add,值为[7,4,5,8,2]

    from pandas import Series,DataFrame
    import  pandas as pd
    
    def create_dataframe():
        '''
        返回值:
        df1: 一个DataFrame类型数据
        '''
        df1=DataFrame(index=['one','two','three','four','five'],columns=['states','years','pops'])
        df1['new_add']=[7,4,5,8,2]
    
        return df1

      对于刚接触Pandas的同学来说,SeriesDataFrame其实也不是很难,但是它们确是基础中的基础,是我们以后学习中常用的东西,所以我们必须把它们掌握好,才能更好的学习这门课。

  • 相关阅读:
    C语言编译多文件
    vs(visual studio 2019)恢复默认设置
    everything 有文件搜不到
    potplayer显示右侧插入列表消息
    ubuntu 关机、重启命令
    post&get请求总结
    C# string格式的日期时间字符串转为DateTime类型
    css position: absolute、relative详解
    在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
    ASP.NET获取客户端及服务器的信息
  • 原文地址:https://www.cnblogs.com/Chen-K/p/12354385.html
Copyright © 2020-2023  润新知