Python数据处理库pandas入门教程

       pandas是一个Python的yuyi语言软件包,在我们使用Python语音进行机器学习编程的时候,这是一个非常常用的基础编程库。本文是对它的一个入门教程。

pandas提供了快速,灵活和富有表现力的数据结构,目的是使“关系”或“标记”数据的工作既简单又直观。它旨在成为在Python中进行实际数据分析的高级构建块。

入门介绍

pandas适合于许多不同类型的数据,包括:

  • 具有异构类型列的表格数据,例如SQL表格或Excel数据
  • 有序和无序(不一定是固定频率)时间序列数据。
  • 具有行列标签的任意矩阵数据(均匀类型或不同类型)
  • 任何其他形式的观测/统计数据集。

由于这是一个Python语言的软件包,因此需要你的机器上首先需要具备Python语言的环境。关于这一点,请自行在网络上搜索获取方法。

关于如何获取pandas请参阅官网上的说明:pandas Installation

通常情况下,我们可以通过pip来执行安装:

sudo pip3 install pandas

或者通过conda 来安装pandas:

conda install pandas

目前(2018年2月)pandas的最新版本是v0.22.0(发布时间:2017年12月29日)。

我已经将本文的源码和测试数据放到Github上: pandas_tutorial ,读者可以前往获取。

另外,pandas常常和NumPy一起使用,本文中的源码中也会用到NumPy

建议读者先对NumPy有一定的熟悉再来学习pandas,我之前也写过一个NumPy的基础教程,参见这里:Python 机器学习库 NumPy 教程

核心数据结构

pandas最核心的就是SeriesDataFrame两个数据结构。

这两种类型的数据结构对比如下:

DataFrame可以看做是Series的容器,即:一个DataFrame中可以包含若干个Series。

注:在0.20.0版本之前,还有一个三维的数据结构,名称为Panel。这也是pandas库取名的原因:pan(el)-da(ta)-s。但这种数据结构由于很少被使用到,因此已经被废弃了。

Series

由于Series是一维结构的数据,我们可以直接通过数组来创建这种数据,像这样:

这段代码输出如下:

# data_structure.py

import pandas as pd
import numpy as np

series1 = pd.Series([1, 2, 3, 4])
print("series1:\n{}\n".format(series1))

这段代码输出如下:

series1:
0    1
1    2
2    3
3    4
dtype: int64

这段输出说明如下:

  • 输出的最后一行是Series中数据的类型,这里的数据都是int64类型的。
  • 数据在第二列输出,第一列是数据的索引,在pandas中称之为Index

我们可以分别打印出Series中的数据和索引:

# data_structure.py

print("series1.values: {}\n".format(series1.values))

print("series1.index: {}\n".format(series1.index))

这两行代码如下;

series1.values: [1 2 3 4]

series1.index: RangeIndex(start=0, stop=4, step=1)

如果不指定(像上面这样),索引是[1, N-1]的形式。不过我们也可以在创建Series的时候指定索引。索引未必一定需要是整数,可以是任何类型的数据,例如字符串。例如我们以七个字母来映射七个音符。索引的目的是可以通过它来获取对应的数据,例如下面这样:

猜你喜欢

转载自blog.csdn.net/sxyyu1/article/details/82913482