python pandas 讲解ppt_Python数据分析之Pandas入门

一、概述

之前我们讲了Python数据分析中基础的工具包Numpy,今天我们来讲讲Pandas,由于Pandas的内容也比较多,本文主要还是讲解一些入门的基本知识。

二、详细说明

同样的我们来引入使用的库

import pandas as pd

2.1、数据结构

在介绍之前,我们先来说说Pandas中常用的两种数据结构:Series、DataFrame。Series的基础知识

创建Series

import pandas as pd

# 创建series(通过数据创建)

pd.Series(["a","b","c","d"])

# 创建series(通过字典创建)

dict = {

"a":"python",

"b":"java",

"c":"php"

}

pd.Series(dict)

# 创建series(通过自定义index创建)

pd.Series(["java","php","python","jsp"],index=["a","b","c","d"])

基本属性、操作、方法

ser_data = pd.Series(["java","php","python","jsp"],index=["a","b","c","d"])

# 获取series的索引

ser_data.index

# 获取series的值

ser_data.values

# 通过索引取值

ser_data["a"]

ser_data[["a","b"]]

# 判断是否有缺失值

ser_data.isnull()

ser_data.notnull()DataFrame的基础知识

创建DataFrame

pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),columns=['a', 'b', 'c'],index=["one","two","three"])

注:可以自定义索引名称和列名,同样也可以使用字典类型创建

基本属性、操作、方法

# 显示前五行/后五行

df.head()/df.tail()

# 获取某列的值名

df.columns

# 获取某列的值

df["a"]

df.a

df1[["a","b"]] # 选取多列

# 根据轴标签索引

df.loc["one":"three"]

# 根据整数索引

df.iloc[0:1]

# 获取某几行几列

df1.iloc[[0,2],[1,2]]

2.2、基本功能重新索引

# 参数:index、method、fill_value(不存在时填充值),columns表示更改列名

df.reindex(["one","two","hh","gg","ff"])

# 重新设置索引,其中原来的索引作为值放入DataFrame中

df.reset_index()丢弃指定轴上的项

# 丢弃轴上的某行()

df.drop(index_name)

# 丢弃某列

df.drop(column_name, axis=1/"columns")索引

针对Series

# 标签切片

ser["a":"d"]、ser[["a","c","e"]]

# 索引切片

ser[2:4]

# 布尔索引

ser[ser>0]

针对DataFrame

# 选取列

df["a"]、df[["a","c","d"]]

# 选取行

df.loc["dd"]、df.iloc[1]、df.iloc[1,2]、df.loc[["dd","cc"]]

# 选取某行某列

df.loc["dd",["a","c"]]

df.iloc[[1,2,3],[4,5,6]]

# 选取前三行

df[:3]

# 布尔索引

df[df["a"]>3]函数映射

np.abs(df)

# 将函数应用到由各列或行所形成的一维数组上(应用到行上则axis=1)

df.apply(function, axis=1)

# 作用于df中的每个元素

df.applymap(func)

# series中的map函数,应用于每个元素中

df["a'].map(func)排序

# 按照索引排序(按升降序排序)

obj.sort_index(axis=1, ascending=False)

# 按照值排序

frame.sort_values(by=['a', 'b'],ascending=False))排名

# 排名情况,相同的取均值

ser.rank()

# 原始排名情况

ser.rank(method='first')

# 按照降序排列

ser.rank(ascending=False, method='max')

# 对于dataframe多了一个axis参数

df.rank(axis=....)

2.3、汇总和计算描述

Pandas对象拥有一组常用的数学和统计方法汇总函数

主要统计一些常用的汇总函数:如平均值、标准差、方差、最大最小值、计数等相关系统和协方差

# 计算相关系数

df["a"].corr([""b])

# 计算协方差

df["a"].cov(df["b"])

# DataFrame的corr和cov方法将以DataFrame的形式分别返回完整的相关系数或协方差矩阵

df.corr()/df.cov()

# 利用DataFrame的corrwith方法,你可以计算其列或行跟另一个Series或DataFrame之间的相关系数

df.corrwith(df.IBM)唯一值及计数

# 统计唯一值

obj.unique()

# 统计各个元素出现次数(默认从大到小排序)

obj.value_counts()

# value_counts还是一个顶级pandas方法,可用于任何数组或序列

pd.value_counts(obj.values, sort=False)

# series中的值是否在序列中,返回布尔数组

ser.isin(['b', 'c'])

2.4、读取数据

在我们进行数据分析时候,需要先读取数据,一般情况下数据都保存在CSV文件、excel文件、数据库中,本文也主要介绍这三种常用的文件读取,对于其他的大家可以参考参考《利用python进行数据分析》。CSV文件操作

文件的读操作

import pandas as pd

pd.read_csv(path="",sep=",",header=None,index_col="",skiprows=[0,2,4])

其中path表示路径、sep表示分隔符、header表示是否显示头部信息、index_col表示建立索引(其中:index_col='message '将message列定义为索引,index_col=["a","b"] 建立多层索引)、skiprows=[0,2,4] 表示跳过0,2,4行数据,还有其他的一些参数,大家可以在使用中查看提示即可。

文件的写入操作

df.to_csv()

参数如下:index 表示是否加索引、header 表示是否有标头、columns=['a','b','c']定义csv文件头部名称、sep='/' 表示分隔符excel文件操作

文件读操作为

pd.read_excel('examples/ex1.xlsx', 'Sheet1')

可以看到基本的参数为文件名、sheet页名

同样,写入操作为

df.to_excel("excel_name.xlslx","sheet_name")数据库读取数据

我们以常用的mysql数据库为例,首先需要我们按照pymsql的库用来连接数据库(直接pip安装即可),读取操作为:

import pymysql

db = pymysql.connect(host="服务器ip(本地使用localhost即可)",port=3306,user='用户名',password='数据库密码',db="数据库名")

pd.read_sql("select * from taggit_tag",db)

结果如下:

操作比较简单直接使用pd.read_sql(),其中第一个参数为sql语句,第二个为连接的数据库json数据读取

对于json库笔者使用较多的就是对爬取数据的json格式解析了,本文简述json库的常用操作

具体说明如下:

import json

json.loads() # 将JSON字符串转换成Python形式

json.dumps() # 将Python形式转化成JSON字符串

pd.read_json() # 读取json格式的文件

df.to_json # 将数据从pandas输出到JSON

三、总结

本文主要是介绍了pandas的一些入门知识,都是对pandas数据结构的一些操作,后面讲解了使用pandas文件中数据的一些操作(基本上能满足我们的日常工作,如需读取其他文件格式,可以自行google),本文是pandas的一个基础入门总结,后续会整理Pandas的一些进阶的知识。

更多Pandas操作:

你可能感兴趣的:(python,pandas,讲解ppt)