Pandas

2020 年 06 月 04 日 • 阅读数: 148

Pandas

pandas简介

  • pandas是一个快速,灵活和表达性数据结构
  • 它使得“关系”或“标记”数据变得简单直观

打开数据

  • 可以直接用read_csv打开一个文本文件

  • 也可以用pandas直接连接数据库,读取数据表

    文件操作
    import pands as pd
    data = pd.read_csv('文件路径/文件名')
    数据库操作
    import pands as pd
    import pymongo
    client = pymongo.MongoClient('localhost',port=27017)
    db = client['数据库名称'].数据表名
    data = pd.DataFrame(list(db.find()))
    

显示数据

  • 虽然可以直接print()输出数据,不过一般用head()读取数据

  • 默认head()只显示前5行数据,也可以在里面传入参数

  • 也可以重后面开始显示数据用tail()函数,同理可以传入参数

  • 用colums获取列名

  • 同Numpy一样可以用shape获取一个维度

    data.head()         取前5行
    data.head(10)       取前10行
    data.tail(10)       取后10行
    data.colums         获取所有列名
    data.shape          获取数据维度,行数和列数
    

索引和切片

  • 可以通过loc[index]索引一行数据(index也可以是一个列表)

  • 同理可以用loc[startIndex:endIndex]获取多行数据

  • 要获取每一列可以直接通过列名来获取,如:data[‘danmu’],同样可以传入一个列表

    data.loc[10]                获取第10行
    data.loc[[1,3,5]]           获取1,3,5行
    data.loc[10,21]             获取10-20行
    data[['user_id','danmu']]   获取2列
    

扩充

  • 要新建一个列,可以直接新建一个列名然后给他赋值

  • 注意,这个值的维度要和数据本身得维度一样

  • 算数运算类似Numpy

  • 也可以通过Series添加数据

    fb_id = data['user_id'] * 1000
    data['fb_id'] = fb_id
    data = pd.Series(fb_id,index=PassengerId)
    

排序

  • sort_values(‘列名’,inplace=True)
  • 第一个参数指定那一列,inplace表示在原来的基础上修改,默认从小到大排序
  • 还可以指定一个参数 ascending True为升序False就是降序,缺失值都会在最后
  • 排序之后可以通过reset_index(drop=True)重新生成样本索引值

缺失值处理

  • 获取一列数据
  • 用isnull()找出所有得缺失值,NON返回True
  • 用找出来的这个缺失值列去索引所有得空值和非缺失值
  • 通过非缺失值可以求均值,方差等
  • 在给缺失值附上合适得值
  • 也可以用dropna丢弃缺失值,data.dropna(axis=0,subset=[列名])

数据透视

  • 在操作一些关系型数据的时候,使用pivot_table()函数会往往大大简化问题
  • pivot_table()接受三个参数,index,values,aggfunc
  • index表示以这一列为统计基准
  • values表示这一列和index的关系,[也可以传一个列表]
  • aggfunc关系函数,默认求均值

定制函数

  • 可以自己写一个函数,然后通过apply()方法对一个数据执行

    数据转换
    def which_class(row):
        pclass = row['Pclass']
        if pd.isnull(pclass)
            return "Unknown"
        elif pclass == 1:
            return "First Class"
        elif pclass == 2:
            return "Second Class"
        elif pclass == 3:
            return "Third Class"
    data.apply(which_class,axis=1)
    

统计频数

  • 要统计每一列数据得频数可以用value_counts()函数
标签: Python数据分析
添加评论
评论列表
没有更多内容