机器学习入门(二)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表示直接对原数据进行操作

猜你喜欢

转载自www.cnblogs.com/yimeisuren/p/12423348.html