一、概述

之前我们讲了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_Python数据分析之Pandas入门相关推荐

  1. python pandas 讲解ppt_Python数据分析之pandas基本功能讲解

    pandas的基本功能 重新索引 不存在的索引都用同一个值填充: obj.reindex(['a','b','c','d','e'],fill_value=0) out: a -5.3 b 7.2 C ...

  2. python中的pandas库_数据分析中 pandas 库的基本用法详解

    上篇分享了数据分析用到的一个库:Numpy 库,今天分享一个比 Numpy 更高效的库:pandas,它可以对数据进行导入.清洗.处理.统计和输出.pandas 是基于 Numpy 库的,可以说,pa ...

  3. python组成结构_Python数据分析丨pandas基本数据结构组成

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云,作者:统计学家 目录 1引言 2 Series数组 2.1 ...

  4. Python全栈开发-数据分析-02 Pandas详解 (上)

    Pandas详解 (上) 一. 安装pandas 1.按Win+R,输入CMD确定, 输入 pip install pandas 回车 还要安装xlrd,否则你打不开Excel文件 pip insta ...

  5. python pandas 讲解ppt_Python中pandas的分析——包括代码实践,相关,解析,含,实战

    该文章代码均在jupyter Notebook中运行,且已安装re包 # 先读取数据 import pandas as pd f = open(r'C:\Users\qingfeng\Desktop\ ...

  6. Python全栈开发-数据分析-03 Pandas详解 (下)

    Pandas详解 (下) 一. Excel文件的拆分与合并 1.1 一个文件夹下多个工作簿的合并[单独Sheet] 思路: 1,把文件夹下面所有的文件都遍历出来 2.循环读取每个文件 (1)第一次读取 ...

  7. python安装pandas库cmd_python数据分析之pandas安装

    (其实最好是用binary文件安装,例如pandas-0.9.1.win32-py2.7.exe,则不会出现下面问题) 1,下载,cmd命令行进入下载解压目录,python setup.py inst ...

  8. Python全栈开发-数据分析-03 Pandas详解 (中)

    Pandas详解 (中) 一. 处理缺失值 1.1 drop函数:删除行,删除列 1.删除某列或某行数据可以用到pandas提供的方法drop 2.drop方法的用法: drop(labels, ax ...

  9. 数据分析工具Pandas(7):数据清洗、合并、转化和重构

    数据分析工具Pandas(1):Pandas的数据结构 数据分析工具Pandas(2):Pandas的索引操作 数据分析工具Pandas(3):Pandas的对齐运算 数据分析工具Pandas(4): ...

最新文章

  1. Cocoa的MVC架构分析
  2. php-curl小记
  3. php mysql某值相同时_php - Mysql3个字段,任何一个字段的值相同则为重复,语句应该怎么写?...
  4. 公因式的概念_公因式概念论文,关于也淡化概念相关参考文献资料-免费论文范文...
  5. PHP5.3下加速器ZendGuardLoader安装及故障处理
  6. Bailian3470 整理扑克牌【贪心+二分】
  7. 【机器学习算法应用和学习_1】1.1 机器学习框架
  8. 后台返回数据时,接口设计规范参考
  9. Linux文件的三种特殊权限SUID、SGID、STICKY
  10. dedecms 判断是否有值然后显示
  11. origin 绘制箱图
  12. 最新添加了一键加入服务器的功能,功能介绍 - 晴天漫画系统 晴天漫画程序 基于标签的一套自动采集更新漫画系统...
  13. Java入门 - 循环结构基础
  14. 数据库update更新date类型数据
  15. namecheap如何解析域名
  16. android 放大镜功能,利用Android实现一个放大镜功能
  17. 凸集学习——理解凸集概念、凸包演示
  18. 高等数学上:函数的极限(重难点)
  19. 由《创业时代》想到的
  20. keil 局部变量不能查看值,显示为not in scope

热门文章

  1. Java实现O(nlogn)最长上升子序列
  2. C程序--输出月份英文名(指针数组)
  3. 转载一份大佬的面试指南,命中率很高
  4. 升级联想E450(加内存条换固态重装系统win10)
  5. 暴力递归到动态规划 05 (贴纸拼词)
  6. @Value注解获取不到配置值
  7. 计算机与航空方向专业,2018航空航天工程专业就业前景和就业方向分析
  8. java 中实现一行一行地读文件和一行一行地追加写文件
  9. NX二次开发 UFUN创建倒角特征 UF_MODL_create_chamfer
  10. 北大AI公开课第五课--深度学习处理器by寒武纪陈云霁