• Series


    一、定义

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

    也可以看成一个定长的有序字典。

     二、创建 

    2.1 无索引创建

    如果未指定索引,索引默认为0只n-1

    import  pandas as pd
    obj_1 = pd.Series(['1', '2', '3'])
    obj_2 = pd.Series(('1', '2', '3'))
    print('obj_1', obj_1)
    print('obj_2', obj_2)

    2.2 有索引创建

    import  pandas as pd
    obj_1 = pd.Series(['1', '2', '3'], index=['a', 'b', 'c'])
    obj_2 = pd.Series(('1', '2', '3'), index=['a', 'b', 'c'])
    dict_1 = {'a':1, 'b':'2', 'c':'3'}
    obj_3 = pd.Series(dict_1)
    print('obj_1', obj_1)
    print('obj_2', obj_2)
    print('obj_3', obj_3)

    三、索引

    3.1 索引对象不可变,索引可变。

    import pandas as pd
    series_1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
    values = series_1.values
    index = series_1.index
    print('values
    ', values)
    print('index
    ', index)
    print('series_1
    ', series_1)
    series_1.index = ['d', 'e', 'f']   # 更改索引.索引个数不能多也不能少
    print('series_1
    ', series_1)
    series_2 = series_1.reindex(['f','d','i'])   # 重新索引,索引数量可以变化,索引对象也可以变化
    print('series_1
    ', series_1)                # 注意,此时的series_1未发生变化。
    print('series_2
    ', series_2)
    
    # index[1] = 'd'              更改索引对象,报错

     3.2 标签切片

    import pandas as pd
    series_2 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
    
    print('series_2
    ', series_2)
    print('series_2[1:3]
    ', series_2[0:2])                   # 不包含最后一项
    print("series_2['b':'c']
    ", series_2['a':'c'])           # 包含最后一项
    series_2['b':'c'] = 5                                     # 赋值操作
    print('series_2
    ', series_2)

    3.2 整数索引

    如果索引为整数,最好使用标签索引。

    import pandas as pd
    series = pd.Series(range(5), index=range(5))
    
    index = series[1:3]           #此处未按标签切片
    iloc = series.iloc[1:3]
    loc = series.loc[1:3]
    
    print('index
    ', index)
    print('
    iloc
    ', iloc)
    print('
    loc
    ', loc)

     3.3 重复索引

    import pandas as pd
    series_1 = pd.Series(range(4), index=list('aabd'))
    
    print( series_1['a'])
    print( series_1.index.is_unique)   # 判断index是不是不重复的

     

    四、操作

    4.1 取值操作

    import pandas as pd
    series_1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
    result_1 = series_1['a']
    result_2 = series_1[['b', 'c']]
    result_3 = 'c' in series_1
    result_4 = 'd' in series_1
    result_5 = series_1[series_1 > 2]  # 布尔类型
    
    print('result_1', result_1)
    print('result_2', result_2)
    print('result_3', result_3)
    print('result_4', result_4)
    print('result_5', result_5)

    4.2 算术操作

    ⾃动的数据对⻬操作在不重叠的索引处引⼊了NA值。

    缺失值会在算术运算过程中传播。

    import pandas as pd
    series_1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
    series_2 = pd.Series([4, 5, 6], index=['b', 'c', 'd'])
    result_1 = series_1 + series_2
    result_2 = series_1 - 2
    result_3 = series_1 * 2
    
    print('result_1', result_1)
    print('result_2', result_2)
    print('result_3', result_3)

     4.3 name属性

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

     4.4 drop 操作

    import pandas as pd
    series_2 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
    series_3 = series_2.drop('a', inplace=False)      #inplace默认为False,series_2不发生改变,如果为True,则series会发生改变
    
    print('series_2
    ', series_2)
    print('series_3
    ', series_3)

     

     4.5 排序

    import pandas as pd
    
    series_1 = pd.Series(range(4), index=list('cabd'))
    series_2 = series_1.sort_index()
    series_3 = series_1.sort_values()
    series_4 = series_1.reindex(list('cabdfe')).sort_values()  # NaN值会直接放到最后
    
    print('series_1
    ', series_1)
    print('
    series_2
    ', series_2)
    print('
    series_3
    ', series_3)
    print('
    series_4
    ', series_4)

    4.6 排名

    排名会从1开始⼀直到数组中有效数据的数量;

    默认情况下,rank是通过“为各组分配⼀个平均排名”的⽅式破坏平级关系的:

     

     

    这⾥,条⽬0和2没有使⽤平均排名6.5,它们被设成了6和7,因为数据中标签0位于标签2的前⾯。

     

     

  • 相关阅读:
    css03层次选择器
    css02基本选择器
    Distance Between Points
    CloseHandle(IntPtr handle)抛异常
    关于win7上内存占用较大的说明
    C# WPF 显示图片和视频显示 EmuguCv、AForge.Net测试(续)
    五种开源协议的比较(BSD_Apache_GPL_LGPL_MIT)
    C# WPF 显示图片和视频显示 EmuguCv、AForge.Net测试
    Opencv不用每次创建项目配置vs2010 vc++目录 库目录等项
    矩阵运算
  • 原文地址:https://www.cnblogs.com/qianslup/p/11891449.html
Copyright © 2020-2023  润新知