Series

1 Pandas的数据结构介绍

pandas的两个主要的数据结构:Series和DataFrame。

1.1 Series介绍

直接上代码

# -*-coding:utf-8 -*-
# author:lz
from pandas import Series, np
'''
实践总结:
    Serise数据机构虽然在很多地方用到,但是真正的单独使用的很少,一般都是和DataFrame结合使用,
    例如,获取DataFrame的一行或一列后就会得到一个Serise,这是时才会使用Serise的一系列功能。
'''

def series_info():
    ''''''
    '''Series由一组数据以及一组与之相关的数据标签(即索引)组成。'''
    '''=========1、定义一个series========
        仅由一组数据即可产生最简单的Series
        在手动生成Series之前需要从pandas中导入Series包:from pandas import Series
    '''
    # 不指定索引,则会自动创建一个0到N-1的整数作为索引。
    ser1 = Series([1,-2,4,6,8])
    #print(ser1)
    # 指定索引,索引长度必须和数据长度一致。
    ser2 = Series([1,-2,4,6,8],index=['a','b','c','d','e'])
    #print(ser2)
    # 重新索引
    ser20 = ser2.reindex(['b','a','d','c','e'])
    #print(ser20)
    # 重新索引的时候,多加了一个索引,那个多加的索引会是nan值。
    ser200 = ser2.reindex(['b','a','d','c','e','f'],
                          fill_value=0 # 指定nan值为0
                          )
    print(ser200)
    # 重新索引的时候,可能需要做一些插值处理。
    obj1 = Series(['blue','purple','yellow'],index=[0,2,4])
    obj2 = obj1.reindex(range(6),
                        method='ffill' # 插入元素时,指定前向值填充   bfill 表示后向值填充
                        )
    print(obj2)


    exit()
    # 修改索引
    # ser2.index = ['A','B','C','D','E']
    # print(ser2)
    # 利用字典创建Series
    dict = {'a':1,'b':-2,'c':4,'d':6,'e':8}
    ser3 = Series(dict)
    print(ser3)
    '''=========2、获取Series中的数据=========
        通过索引的方式获取Series中的单个或一组值
        得到的“单个或一组值”数据类型依旧是Series
    '''
    v1 = ser2['a']
    v2 = ser2[['a','c','d']]
    #print(v1)
    #print(type(ser1)) # <class 'pandas.core.series.Series'>
    #print(v2)
    #print(type(ser2)) # <class 'pandas.core.series.Series'>
    '''=========3、Series进行运算=========
        布尔型数组过滤、标量乘法、应用数学函数都会保留索引和值之间的链接
        得到的结果依旧是Series类型
    '''
    ser21 = ser2[ser2>0]
    #print(ser21)
    #print(type(ser21)) # <class 'pandas.core.series.Series'>
    ser22 = ser2*2
    #print(ser22)
    ser23 = np.exp(ser2)
    #print(ser23)
    '''=========4、遍历Series=========
            利用for循环
        '''
    for v in ser2:
        print(v)
    '''=========5、判断索引中是否有要找的值(字符或数)=========
                只能找索引,不能找值,这个是类似于字典的。
        '''
    if('b'in ser2):
        print(True)
    '''=========6、判断Series中是否有空值=========
           利用 .isnull()         
        '''
    '''=========7、算术运算中自动对齐不同索引地数据=========
           例如:将两个Series进行相加时,会自动找到相同的索引进值相加,
           注意的是,如果两个Series中存在不对应的索引,就将这些独立的索引置为nan值。        
        '''
    ser4 = Series([1,2,3,4,-4,5],index=['a','b','aa','bb','ab','c'])
    ser5 = Series([1,2,3,4,-4,5],index=['d','a','cc','aa','e','c'])
    ser4_5 = ser4 + ser5
    print(ser4_5)



if __name__ == '__main__':
    series_info()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值