zoukankan      html  css  js  c++  java
  • pandas数据结构

    Pandas的数据结构

    1. Series

      类似一维数组的对象, 操作像列表

      • value : 一组数据

      • index : 相关数据的索引标签

      1. Series的创建
        方式1 : 由列表或numpy数组创建

        Series(data=[1,2,3,4,5])
        Series(data=np.random.randint(0,100,size=(10,)))
        #Series(data=np.random.randint(0,100,size=(10,5)))报错
        
      2. head()和tail()

      3. 检测缺失数据和清洗空值

        #pd.isnull()和pd.notnull()
        s1 = Series([1,2,3,4]),index =['周杰伦','林俊杰','陈奕迅','许嵩']
        s2 = Series([1,2,3]),index = ['周杰伦','陈奕迅','林俊杰']
        s = s1 + s2
        s.notnull()#返回列表,对应位置不是NaN的返回true,是NaN的返回false,类似[True,False,True,False],
        s[s.notnull()]#可以取到清洗空值的效果
        
      4. Series之间的运算

        • 在运算中自动对齐不同索引的数据
        • 如果索引不对应, 则补NaN
    2. DataFrame (二维表格)

      1. 行标签index : 相当于类的属性
        列标签column : 相当于一个对象
        操作像面向对象

      2. 创建DataFrame

        • 使用ndarray创建DataFrame

          df = DataFrame(data=np.random.randint(0,100,size(3,4))),index = ['a','b','c'], column =['A','B','C','D']
          
        • 使用字典创建DataFrame

          dic = {
              '张三' : [150,150,150,150],
              '李四' : [0,0,0,0]
          }
          df = DataFrame(data=dic,index=['语文','数学','英语','理综'])
          
      3. DataFrame的索引和切片

        1. 索引

          #可以直接取对象,也就是一条完整的数据
          df['张三']
          #不可以通过df['语文']的方式取,跨对象取值
          df.loc['语文'] #显式索引
          df.iloc[0] #隐式索引
          
          #示例
          df['张三']
          df['张三']['英语']
          df.loc['英语','张三']  #一旦有逗号,左边一定是行,右边一定是列
          df.loc[['语文','英语'],'张三']
          
        2. 切片

          #切行
          df[0:2]
          #切列
          df.iloc[:,0:1]
          
    3. tushare包 (这部分代码主要是pandas的文件读写)

      df = tushare.get_k_data()
      df.to_csv('文件路径/文件名') #保存为本地的csv格式文件
      #输出该股票所有收盘比开盘上涨3%以上的日期
      df = pandas.read_csv('文件路径/文件名')
      #index_col : 将表中某一列对应的数据作为行索引index,
      #parse_dates : 将某些列的数据改成date类型
      df = pandas.read_csv('文件路径/文件名',index_col='data',parse_dates=['date'])
      #删除某些列标签(无用属性)
      #tushare得到的列表不同于普通的DataFrame表,更像excel,一行代表一个对象,一列代表一个属性
      df.drop(label='列标签',axis=1,inplace=true)#inplace表示直接对原数据进行操作
      
  • 相关阅读:
    设备接入项目杂记
    用lucene替代mysql读库的尝试
    node(ActiveMq)
    mysql集群(双主)
    mysql集群(主从)
    DoraCMS 源码知识点备注
    Flex使用Scroller组件实现以鼠标为中心的缩放
    JQuery Mobile Popup窗口定位
    Flex Builder 不能Profile的另一个原因:不能使用中文用户名
    STM32407入门笔记
  • 原文地址:https://www.cnblogs.com/yimeisuren/p/12423348.html
Copyright © 2011-2022 走看看