学习笔记 Python - Pandas

Posted SAP剑客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记 Python - Pandas相关的知识,希望对你有一定的参考价值。

Pandas

一、Pandas简介

Pandas是数据分析三剑客之一(PandasMatplotlibNumpy),是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的主要内容,如果未能解决你的问题,请参考以下文章

20180428学习python笔记(pandas使用----绘图)

python学习笔记:pandas基础

python:pandas学习笔记

学习笔记之pandas: Python Data Analysis Library

pandas学习笔记D1

学习笔记 Python - Pandas