【学习笔记】 Python - Pandas
Pandas
一、Pandas简介
Pandas是数据分析三剑客之一(Pandas、Matplotlib、Numpy),是Python核心数据分析库,提供了快速、灵活、明确的数据结构,能够简单、直观、快速地处理各种类型地数据。
Pandas能够处理以下类型地的数据:
- 与SQL或者Excel表类似的数据;
- 有序和无序(非固定频率)的时间序列数据;
- 带行、列标签的矩阵数据;
- 任意其他形式的观测、统计数据等;
Pandas提供了两个主要数据结构Series (一维数组结构)和DataFrame(二维数组结构),可以处理金融、统计、社会科学、工程等领域的大多数典型案例,并且Pandas是基于Numpy开发的,可以与其他第三方科学计算库完美集成。
维数 |
名称 |
描述 |
1 |
Series |
带标签的一维同构数组 |
2 |
DataFrame |
带标签的大小可变的二维异构数组 |
Pandas主要优势如下:
- 处理浮点与非浮点数据里的缺失数据,表示为NaN;
- 大小可变,例如插入或者删除DataFrame等多维对象的列;
- 自动、显式数据对齐,显式地将对象与一组标签对齐,也可以忽略标签,在Series和DataFrame计算时自动与数据对齐;
- 强大、灵活的分组统计功能(groupby),即数据聚合、数据转换;
- 把Python和Numpy数据结构里不规则、不同索引的数据轻松地转换为DataFrame对象;
- 智能标签,对大型数据集进行切片、花式索引、子集分解等操作;
- 灵活地重塑(reshape)、透视(pivot)数据集;
- 直观地合并(merge)、连接(join)数据集;
- 成熟的导入、导出工具,导入文本文件(csv等支持分隔符的文件)、Excel文件、数据库等来源的数据,导出Excel文件、文本文件等,利用超快的HDF5格式保存或加载数据;
- 时间序列:支持日期范围生成、频率转换、移动窗口统计、移动窗口线性回归、日期位移等时间序列功能;
二、Pandas安装和简单使用
最简单的可以通过PyPI(Python Package Index)的pip(python install packages)工具安装。
安装命令:pip install Pandas
Note: you may need to restart the kernel to use updated packages.
更新库:pip install --upgrade Pandas
下面通过一个Excel数据导入的例子来初识Pandas。
三、Series对象
Pandas是Python数据分析重要的库,而Series和DataFrame是Pandas库中两个重要的对象,也是Pandas中两个重要的数据结构。
Series是Python的Pandas库中一种数据结构,类似一维数组,由一组数据以及与这组数据相关的标签(即索引)组成,或者仅有一组数据没有索引也可以创建一个简单的Series。Series可以存储整数、浮点数、字符串、Python对象等多种类型的数据。
比如上面的Excel,就包含了Series对象和DataFrame对象。其中“得分”、“篮板”、“助攻”等每一列都是一个Series对象,其共同组成了一个DataFrame对象。
创建Series对象语法: s = pd.Series(data,index = index)
data:表示数据,支持Python字典、多维数组、标量值(只有大小没有方向的量);
index:表示行标签(索引);
返回值:Series对象;
手动设置Series索引
如上例所示,创建Series对象时会自动生成整数索引,默认值从0开始至数据长度减1。
除了使用默认索引,我们还可以通过index参数手动指定设置索引。
Series位置索引
位置索引是从0开始数数的,[0]是Series的第一个数,以此类推。
Series标签索引
与位置索引类似,用“[]”表示,里面是索引的名称,注意index的数据类型是字符串,如果需要获取多个标签索引值,需要用“[[]]”表示。
Series切片索引
用标签索引做切片,包头包尾(即包含索引开始位置的数据,也包含索引结束位置的数据)。
用位置索引做切片,包头不包尾(即包含索引开始位置的数据,但不包含索引结束位置的数据),这个和列表是一样的。
获取Series的索引和值
获取Series的索引和值可以使用Series的index和values方法。
四、DataFrame对象
DataFrame是Pandas库中一种由多种类型的列组成的二维表数据结构,类似于Excel、SQL或者Series对象构成的字典。
DataFrame是一个二维数据结构,由行、列数据组成的表格。DataFrame既有行索引又有列索引,可以看作是由Series对象组成的字典,不过这些Series对象共用一个索引。
创建DataFrame对象语法: df = pd.DataFrame(data,index,columns,dtype,copy)
data:表示数据,可以是ndarray数组、Series对象、列表、字典等;
index:表示行标签(索引);
columns:表示列标签(索引);
dtype:每一列数据的数据类型;
copy:用于复制数据;
返回值:返回DataFrame对象;
Pandas dtype |
Python type |
object |
str |
int64 |
int |
float64 |
float |
bool |
bool |
datatime64 |
datetime64[ns] |
timedelta[ns] |
NA |
category |
NA |
通过字典创建DataFrame
字典中的value值只能是一维数组或者单个简单数据类型,如果是数组,要求所有的数组长度一致,如果是单个数据,要求每行都添加相同的数据。
import pandas as pd# 使列名对齐pd.set_option('display.unicode.east_asian_width',True)df = pd.DataFrame({'班级':'三年二班','语文':[98,95,85],'数学':[79,66,90],'英语':[100,92,89],},index = [0,1,2])print(df)
DataFrame的重要属性和函数
属性 |
描述 |
例子 |
values |
查看所有元素的值 |
df.values |
dtypes |
查看所有元素的类型 |
df.dtypes |
index |
查看所有行名、重命名行名 |
df.index df.index = [1,2,3] |
columns |
查看所有列名、重命名列名 |
df.columns df.columns=[‘1’,’2’,’3’] |
T |
行列数据转换 |
df.T |
head |
查看前n条数据,默认5条 |
df.head() df.head(10) |
tail |
查看后n条数据,默认5条 |
df.tail() df.tail(10) |
shape |
查看行数和列数,[0]行[1]列 |
df.shape[0] df.shape[1] |
info |
查看索引、数据类型和内存信息 |
df.info |
函数 |
描述 |
例子 |
describe |
查看每列的统计汇总信息,DataFrame类型 |
df.describe() |
count |
返回每一列中的非空值的个数 |
df.count() |
sum |
返回每一列的和,无法计算返回空值 |
df.sum() |
max |
返回每一列的最大值 |
df.max() |
min |
返回每一列的最小值 |
df.min() |
argmax |
返回最大值所在的自动索引位置 |
df.argmax() |
argmin |
返回最小值所在的自动索引位置 |
df.argmin() |
idxmax |
返回最大值所在的自定义索引位置 |
df.idxmax() |
idxmin |
返回最小值所在的自定义索引位置 |
df.idxmin() |
mean |
返回每一列的平均值 |
df.mean() |
median |
返回每一列的中位数(中值) |
df.median() |
var |
返回每一列的方差 |
df.var() |
std |
返回每一列的标准差 |
df.std() |
isnull |
检查df中的空值,空值为True,否则False |
df.isnull() |
notnull |
检查df中的空值,非空值为True,否则False |
df.notnull() |
【学习笔记】 Python - Pandas相关推荐
- python分组求和_Python学习笔记之pandas索引列、过滤、分组、求和功能示例
本文实例讲述了Python学习笔记之pandas索引列.过滤.分组.求和功能.分享给大家供大家参考,具体如下: 前面我们已经把519961(基金编码)这种基金的历史净值明细表html内容抓取到了本地, ...
- Python学习笔记:pandas初体验
Python学习笔记:pandas初体验 一.安装pandas模块 1.安装Python3.7 注意:必须勾选pip(python install package). 2.配置环境变量 3.下载 pa ...
- pandas学习笔记:pandas.Dataframe.rename()函数用法
pandas学习笔记:pandas.Dataframe.rename()函数用法 pandas.Dataframe.rename()函数主要是用来修改Dataframe数据的行名和列名. 主要用到的参 ...
- python语言的33个保留字的基本含义_Python学习笔记——Python的33个保留字及其意义,python,pythone33,含义...
Python学习笔记--Python的33个保留字及其意义,python,pythone33,含义 发表时间:2020-03-27 笔记走起 正文 序号 保留字 含义 1 and 用于表达式运算,逻辑 ...
- Python数据分析三剑客学习笔记Day3——pandas包的使用:认识series类型,DataFrame类型,读取excel表格数据及数据操作
本文是视频Python数据分析三剑客 数学建模基础 numpy.pandas.matplotlib的学习笔记. -------------------------------------------- ...
- Python学习笔记--Python字符串连接方法总结
声明: 这些总结的学习笔记,一部分是自己在工作学习中总结,一部分是收集网络中的知识点总结而成的,但不到原文链接.如果有侵权,请知会,多谢. python中有很多字符串连接方式,总结一下: 1)最原始的 ...
- 树莓派学习笔记——Python SQLite插入温度记录
0 前言 本文使用python向SQLite数据库中插入树莓派温度数据,SQLite数据库中包含一张只包含三个字段的记录表--参数名称,时间和温度值.本文重点解释Python操作SQlite的具体方法 ...
- 全志H616学习笔记------Python
要求:不用深究,用C语言的视角学习,会改就行 Python是一种动态解释型语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在java..NET开发平台上使用. 特点 ...
- python提示keyerror 13372,Python 学习笔记之—— Pandas 库
import numpy as np import pandas as pd 1. 基本的数据结构 1.1 Series Series 是一维的标记数组,可以容纳任意数据类型,比如整数.字符串.浮点数 ...
- 非理工科编程零基础文科生秒懂python学习笔记:pandas库数据表格创建和运算基础有哪些?
#dataframe的数据类型 #每行的数据类型可以不一样 #行索引为index 等同于excel表格最左边的1.2.3.4 #列索引为column 等同于excel表格最顶端的A|B|C|D|E # ...
最新文章
- maven编译java1.8项目_maven正在用java 1.7编译代码,但我想用1.8编译它
- linux命令:系统裁剪之五dropbear嵌入式系统专用ssh服务
- android中互斥的控件,Android控件之Radiobutton与RadioGroup
- 绝地求生12月18日服务器信息,绝地求生12月18号几点更新维护完 2019绝地求生12月18日更新维护开服时间...
- 库对比工具mysqldiff使用
- C#基础知识之base、this、new、override、abstract梳理
- 如何检测本计算机耗电量,如何查看电脑耗电量?鲁大师查看电脑使用功率的方法...
- 时间复杂度和空间复杂度,一看就懂,面试前必过一遍
- 存储入门:存储区域网络SAN技术完全详解
- Android 图标异常,APK格式文件图标显示异常
- gif透明背景动画_如何利用premiere制作GIF动态图片
- cookie.setValue一些注意事项
- 箱形图、盒须图、盒式图、箱线图
- 自制H桥有刷电机驱动板
- 【Linux学习笔记】线程同步 之 信号量 之 sem_t结构体
- 中科院1区JGG微生物专刊征稿
- 计算机学校班干部竞选演讲稿,精选:2019学校班干部个人竞选演讲稿范文五篇...
- html里覆写css样式,!important覆写css行内样式
- 数仓分层的意义及通用设计
- KV260编译SmartCam应用