Python数据结构:序列

作者: 可乐的数据分析之路 | 来源:发表于2020-03-23 20:21 被阅读0次

    Hello,大家好,我是可乐,文章首发于公众号:可乐的数据分析之路

    这是Python数据分析系列的第5篇文章,今天要说的是数据结构中的序列(Series),Series是由一组数据和一组行索引构成的一维数组,可以理解为Excel里没有列名的一列数据。

    要使用Series,就要导入pandas模块。

    import pandas as pd
    

    1. 建

    新建一个Series,用pd.Series,可以从列表中创建

    从列表中新建一个序列

    In [1]:S1 = pd.Series([2,4,6,8])
           S1
    Out[1]:0 2
           1 4
           2 6
           3 8
           dtype:int63
    

    输出的第一列[0,1,2,3]是这个序列S1的索引,第二列[2,4,6,8]是S1的值,与列表最主观的不同是,列表是横向排列,序列时纵向排列的。

    同时可以看到,在不指定索引的情况下,默认索引从0开始递增,当然也可指定索引,如下例, 给S2序列指定了从1开始递增的索引,用index给它赋值。

    In [2]:S2 = pd.Series(["a","b","d","e"],index = [1,2,3,4])
           S2
    Out[2]:1 a
           2 b
           3 d
           4 e
           dtype:object
    

    还可以从字典中创建,这时键就是该序列的索引。

    In [3]:S3 = pd.Series({"Tom":101,"Tony":102,"Judy":103})
           S3
    Out[3]:Tom  101
           Tony 102
           Judy 103
           dtype:int64
    

    2. 增

    在序列中新增数据,实际上是创建一个新的序列,然后将两个序列纵向合并。如在S2的基础上,把S1追加过去,用append方法,这样就间接实现了往S2序列中增加数据。

    In [4]:S2.append(S1)
    Out[4]:1 a
           2 b
           3 d
           4 e
           0 2
           1 4
           2 6
           3 8
           dtype:object
    

    又或者,只想在S2序列中增加一个“f”的值,还是这样。

    In [5]:S_f = pd.Series(["f"],index = [5])
           S2.append(S_f)
    Out[5]:1 a
           2 b
           3 d
           4 e
           5 f
           dtype:object
    

    3. 删

    删除序列中的值,用drop方法按照索引删除,如要删除a这个值,drop里填写a对应的索引1,注意不是0,因为这不是默认索引,是我们设置了的从1开始递增的索引。

    In [6]:# 删除
           S2.drop([1])
    Out[6]:2 b
           3 d
           4 e
           5 f
           dtype:object
    

    上面的例子是删除一个值,也可以删除多个值

    In [7]:# 删除
           S2.drop([1,3])
    Out[7]:2 b
           4 e
           5 f
           dtype:object
    

    4. 查

    查找某个值是否在序列中
    同样用in操作符,这里就不多说了,要说一下另一个方法,isin,返回的是布尔值。

    In [8]:# 查找
           S2.isin([a,f])
    Out[8]:2 FALSE
           4 FALSE
           5 TRUE
           dtype:bool
    

    查找S2序列中是否包含“a”和"f"的值,索引5是f,所以返回TRUE,其他都返回FALSE。

    查找序列中指定位置的值
    通过索引的访问,查找指定位置的值。

    In [9]:# 索引
           S4 = pd.Series(["c","o","l","a"],index = ["一","二","三","四"])
           S4["三"]
    Out[9]:l
    

    这里新建了一个S4序列,索引是自定义的["一","二","三","四"],通过查找索引“三”,得到对应的值“l”。

    切片,访问多个位置,访问前三(包括第三)的数据。

    In [10]:# 切片
           S4[:3]
    Out[10]:一 c
            二 o
            三 l
            dtype:object
    

    5.改

    对值的修改和其他数据结构一样,根据索引查找,然后赋值,如把S4序列的c改成d:

    In [11]:# 修改
           S4["一"] = "d"
           S4
    Out[11]:一 d
            二 o
            三 l
            四 a
            dtype:object
    

    练习1:创建一个0、1、2、3、4的序列,修改其索引为ABCDE
    关于练习题的答案,可以加我微信(data_cola),备注:练习1,发给你哦


    @ 作者:可乐,进阶的数据分析师

    @ 公众号/知乎专栏/头条/简书:可乐的数据分析之路

    @ 欢迎加作者微信(data_cola)交流探讨

    相关文章

      网友评论

        本文标题:Python数据结构:序列

        本文链接:https://www.haomeiwen.com/subject/vxdgyhtx.html