Python数据分析--pandas总结复习

发布于:2022-11-09 ⋅ 阅读:(18) ⋅ 点赞:(0) ⋅ 评论:(0)

import pandas as pd

Pandas中,有两个主要的数据结构:Series(以为数据结构)和DataFrame(二维的,表格型的数据结构)

一 .主要数据结构

Series  创建一个类似一维数组的对象,能够保存任何类型的数据,主要由一组数据和与之相关的索引两部分构成。

语法: pd.Series(data,index)   

→data表示传入的数据,可以是ndarray、列表、字典等。

  Index表示索引。 案例如图:

 

DataFrame 创建的是一个类似于二维数组或表格(如excel)的对象,每列可以是不同的数据类型。注:DataFrame的索引不仅有行索引、还有列索引

语法:pd.DataFrame(data,index,columns)

Index表示行标签,columns表示列标签

二.读写文件

读/写文本文件、EXCEL文件、数据库

  • Read_csv() 函数的作用是将csv文件的数据读出来转换成DataFrame对象
  • Read_table()可以读csv文件,也可以读Text文件

注: read_csv()是用“,”作为分隔符,read_table()使用“\t”作为分隔符。

  • to_csv()的作用是将数据写入安东csv文件中
  • read_excel()的将excel的数据读取出来转换程DataFrame对象
  • to_excel() 的作用是将DataFrame对象写入对excel表格中
  • 数据库的读取:
  1. read_sql_query 只能实现查询操作,不能直接读取数据库中的某个表
  2. read_sql_table 只能读取数据库中的某一个表格,不能实现查询操作
  3. read_sql  既能够读取,又能够查询
  •  to_sql 将数据写入到SQL数据库中

创建数据库连接:create_engine()

‘数据库产民名+连接工具名://用户名:密码@数据库IP地址:端口号/数据库名’

# engine=create_engine('mysql+pymysql://root:root@127.0.0.1:3306/bigdata')

三、DataFrame的常用属性和查看DataFrame对象中的数据

基础属性:

values 获取元素;   index 获取索引;   columns 获取列名;  dtype 获取类型

size 元素个数;    ndim 维度;    shape 形状

T属性 实现行列转换

 

增删改查

查:使用loc()、iloc()访问方式

Loc()针对的是索引名称进行切片,iloc针对的是索引位置进行切片

DataFrame.loc[行索引名称或条件,列索引名称]

DataFrame.iloc[行索引位置,列索引位置]  

loc()方法内部还可以传入条件表达式,结果会返回满足所有表达式的所有值;

:原理是将这部分数据提取出来,重写赋值为新的数据,需要注意的是,更改后无法撤销。

Eg:将行索引为0的学生的成绩改成100,首先用loc切片提取出来,在重新赋值;

将李明(不知道行索引的情况下)的成绩修改为100    

 

 

为DataFrame添加一列的方法非常简单,只需要新建一个列索引,并对该索引下的数据进行赋值操作即可。

如果新增的一列的值是相同的,那么可以直接为其赋值一个常量

可以使用DataFrame.loc[row name]添加一行;

 用drop()方法

语法: droplabelsaxisinplace

              labels接收单一标签,表示要删除的索引或列标签,无默认值

              axis  =1 删除列元素; =0删除行元素  默认为0

              inplace  表示对原数据是否生效 默认是 False

 

四、时间类型的数据分析

转换时间字符串为标准时间

Timestamp是时间类中较为基础的,也是较为常用的,pandas提供的to_datetime()函数能够实现这一目标。 基本语法: pandas.to_datetime(str)

 

提取时间序列数据信息

在多数涉及与时间相关的数据处理、统计分析的过程中,都需要提取时间中的年份、月份等数据。使用对应的Timestamp类属性就能够实现这一目的,

 

加减时间数据

 

生成固定频率的时间序列

使用date_range() 函数 语法:pandas.date_range(start,end,periods,fred)

               start:表示起始时间 end:表示终止时间

                periods:表示产生多少个时间戳索引值 取值为整数 fred:计时单位,默认是D(天)

如图所示

 

五.分组与聚合

分组:groupby() 聚合:agg()

 ①groupby()方法将数据集按照某些标准划分成若干个组。

语法:DataFrame.groupby(by=None,axis=0,sore=True)

          By:用于确定进行分组的一局

           Axis:表示分组轴方向 0表示按行1表示按列 默认为0

         Sort:是否对分组表标签进行排序,默认为true

注:通过groupby()方法执行分组操作,会返回一个Groupby对象

   使用Series调用groupby()方法返回的是SeriesGroupby对象

   使用DataFrame调用groupby() 方法返回的DataFrameGroupBy对象

  分组对象的groups属性可以返回分组信息,结果是一个形似字典的对象

 分组对象的get_group()方法可以返回指定分组名的DataFrame

 

用于获得最大值最小值平均值的函数也用于简单的聚合分组

 

聚合 如果内置方法无法满足聚合要求是,则可以自定义函数,将她作为参数传给agg()方法,实现pandas对象的聚合运算。语法:DataFrame.agg(func, axis=0)  func用于汇总数据的函数

    函数可以是内置的,也可以是自定义的;

 

对某列数数据应用不同的函数

可以将两个函数的名称放在列表中,之后再调用agg()方法进行聚合作为参数传入

 

可以使用(name,function)

Eg:

 

如果希望对不同的列使用不用的函数,可以传入一个{“列名”:”函数名”}格式的字典 如图:

 

六 数据转换和数据应用

数据转换:希望保持与原数据集形状相同,可以使用transform()方法实现

语法:transform(func, anis=0)

数据应用:apply()方法类似于agg()方法,能够将函数应用于每一列,不用之处在于,与agg()方法相比,appaly()方法传入的函数作用于整个DataFrame或Series,

Apply(func, axis=0)

 

七 算术运算与排序

Pandas数据结构之间可以使用运算符运算,也可以使用算术运算方法来完成Pandas提供的算术运算方法有add()、sub()、mul().div()和mod()等函数。这些函数分别是完成加、减、乘除和求余数的运算。

函数的调用方法: obj1.add(obj2) 。其中obj1和obj2是Series或DataFrame对象,sub0、mul0、div()和mod()等函数的调用方法与add()相同

如果希望不使用NaN填充缺失数据,则可以在调用add0方法时提供fill value参数的值,fill value将会使用对象中存在的数据进行补充   

排序

Pandas中按索引排序使用的是sort index()方法该方法可以用行索引或者列索引进行排序。

语法:sort index(axis = 0, level = None, ascending = True)

Pandas中用来按排序的方法为sort_values()

语法:sort values(by, axis=0,ascending=True)

         by:指定列名(axis=0或'index')或索引值(axis=1或columns') 。

axis: 若axis=0或'index',则按照指定列中数据大小排序;若axis=1或'columns,则按照指定索引中数据大小排序,默认axis=0。

ascending: 表示是否升序排列,默认为True表示升序。

 将pandas部分整理出来学习使用~嘿嘿嘿!改完bug好睡觉!!