概述
Pandas简介
import pandas as pd
建立在 NumPy 数组结构上的 Pandas,尤其是它的 Series
和 DataFrame
对象,为数据科学家们处理那些消耗大量时间的“数据清理”(data munging)任务提供了捷径。
Pandas 有三个基本数据结构:Series, DataFrame, Index
。
Pandas 中字符串类型通常是用 object
类型存储的。
Series对象
Pandas 的 Series
对象有 values
和 index
两个属性。
values
属性返回的结果与 NumPy 数组类似;index
属性返回的结果是一个类型为pd.Index
的类数组对象。
Series
对象的特点:
Series
对象是一个带索引数据构成的一维数组。可以用一个数组创建Series
对象:>>> data = pd.Series([0.25, 0.5, 0.75, 1.0]) >>> data 0 0.25 1 0.50 2 0.75 3 1.00 dtype: float64
Series
是通用的 NumPy 数组。显式索引的定义让Series
对象拥有了更强的能力,例如索引不再仅仅是整数,而可以是任意想要的类型:>>> data = pd.Series([0.25, 0.5, 0.75, 1.0], index=['a', 'b', 'c', 'd']) >>> data a 0.25 b 0.50 c 0.75 d 1.00 dtype: float64
Series
是特殊的字典。字典是一种将任意键映射到一组任意值的数据结构,而Series
对象其实是一种将类型键映射到一组类型值的数据结构。用字典创建Series
对象时,其索引默认按照顺序排列。


创建 Series
对象的通用形式:pd.Series(data, index=index)
data
:支持多种数据类型index
: 可选参数可以通过显式地指定索引筛选需要的结果:
>>> pd.Series({2: 'a', 1: 'b', 3: 'c'}, index=[3, 2]) 3 c 2 a dtype: object
DataFrame对象
DaraFrame
对象有values, index, columns
三个属性。
- 其中
values
和index
的功能同Series
对象,index
属性和columns
属性都是pd.Index
对象 - 将
index
属性叫做索引标签,columns
属性叫做列标签。
DataFrame
对象的特点:
- 如果将
Series
类比为带灵活索引的一维数组,那么DataFrame
就可以看作是一种既有灵活的行索引,又有灵活列名的二维数组。也可以将DataFrame
看成是含共同索引的若干Series
对象。 DataFrame
是特殊的字典。字典是一个键映射一个值,而DataFrame
是一列映射一个Series
的数据。
创建 DataFrame
对象:
通过单个
Series
对象创建pd.DataFrame(population, columns=['population'])
通过字典列表创建(元素是字典的列表),此时由字典的键对应
DataFrame
的列标签>>> data = [{'a': i, 'b': 2 * i} for i in range(3)] >>> pd.DataFrame(data) a b 0 0 0 1 1 2 2 2 4
通过
Series
对象字典创建通过
NumPy
二维数组创建通过
NumPy
结构化数组创建
Index对象
Index
对象的特点:
将 Index 看作不可变数组
- Index 对象与 NumPy 数组之间的不同在于,Index 对象的索引是不可变的,也就是说不能通过通常的方式进行调整。
将 Index 看作有序集合(实际上是个多集,因为可包含重复值)
Index 对象遵循 Python 标准库的集合(set)数据结构的许多习惯用法,包括并集、交集、差集等:
indA & indB # 交集 indA | indB # 并集 indA ^ indB # 异或
这些操作还可以通过调用对象方法来实现,如
indA.intersection(indB)
。