美文网首页
pandas库学习(一) Series

pandas库学习(一) Series

作者: 3ni | 来源:发表于2018-11-01 11:16 被阅读0次

    在学习pandas库之前,要先了解NumPy库。
    pandas的数据结构
    1.Series
    2.DataFrame
    3.索引

    首先学习Series这个结构
    先引入本地命名空间
    from pandas import Series
    import pandas as pd
    import Numpy as np

    Series是一种类似于一维数据的对象,它由一组数据以及一组与之相关的数据标签组成。
    比如:
    s = Series([4,7,-5,3])
    print s
    结果为:

    0    4
    1    7
    2   -5
    3    3
    dtype: int64
    

    左边为索引,右边为对应的值,dtype为数据类型。这有点像字典,但是比字典灵活多了。
    我们可以自定义这个索引,比如:
    s = Series([4,7,-5,3],index=['d','c','b','a'])
    print s
    结果为:

    d    4
    c    7
    b   -5
    a    3
    dtype: int64
    

    还可以这样重命名索引:
    s=Series([4,7,-5,3])
    s.index=['d','c','b','a']

    如何取出Series里面的值呢,也很简单,比如
    print s['a']

    3
    

    print s['c']

    7
    

    print s[['a','b']]

    a    3
    b   -5
    dtype: int64
    

    除了取出里面的值,还可以对Series进行运算
    如取出大于0的数
    print s[s>0]

    d    4
    c    7
    a    3
    dtype: int64
    

    又如计算sinx的值
    print np.sin(s)

    d   -0.756802
    c    0.656987
    b    0.958924
    a    0.141120
    dtype: float64
    

    这些操作并不会影响它们的索引,也就是说计算出来的结果还是原来的索引

    还可以判断数据是否在Series中,比如:
    print 'b' in s

    True
    

    print 'e' in s

    False
    

    既然Series这么好用,那么如果有一个字典,我想转换成Series怎么办呢
    可以用以下方法:
    sdata={'name':'wzh','sex':'boy','address':'hubei'}
    s1=Series(sdata)
    print s1

    address    hubei
    name         wzh
    sex          boy
    dtype: object
    

    可以看出来,字典中原来的键就是Series中的索引
    有时候我们输错了索引会怎么样,比如如下:
    s2=Series(data,index=['name','sex','c'])
    print s2

    name    wzh
    sex     boy
    c       NaN
    dtype: object
    

    出现了一个NaN的值,这表示缺失或者没有
    可以用pandas中方法来判断Series中是否有缺失值,比如
    print pd.isnull(s2)

    name    False
    sex     False
    c        True
    dtype: bool
    

    True就代表是缺失
    当然也可以看没有缺失的,比如:
    print pd.notnull(s2)

    name     True
    sex      True
    c       False
    dtype: bool
    

    此时True就是代表没有缺失的。
    Series对象之间还可以进行运算,在运算时还会进行自动对齐不同的索引,就是相同索引之间的值相加,比如:
    s1=Series([1,2,3,4],index=['a','b','c','d'])
    s2=Series([1,2,3,4],index=['b','c','a','h'])
    print s1 + s2

    a    4.0
    b    3.0
    c    5.0
    d    NaN
    h    NaN
    dtype: float64
    

    我们还可以给这个Series给个名字,还可以给Series对象的索引给个名字,比如:
    s1.name='test'
    s1.index.name='state'
    print s1

    state
    a    1
    b    2
    c    3
    d    4
    Name: test, dtype: int64
    

    相关文章

      网友评论

          本文标题:pandas库学习(一) Series

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