Pandas是一个强大的时间序列数据处理工具包,最初开发的目的是为了分析财经数据,现在已经广泛应用在Python数据分析领域。本节通过简单的介绍,让读者熟悉简单的Pandas概念及操作。
1.基本数据结构
Pandas最基础的数据结构是Series,用它来表达一行数据,可以理解为一维数组。比如下面的代码,创建了一个包含6个数据的一维数组。
In [1]: import pandas as pd
In [2]: s = pd.Series([4,2,5,0,6,3])
In [3]: s
Out[3]:
0 4
1 2
2 5
3 0
4 6
5 3
dtype: int64
Series会自动为数据加上索引,默认是从0开始的连续索引,也可以自己指定索引。
另一个关键的数据结构是DataFrame,它表示的是二维数据。下面的代码会创建一个DataFrame对象。
In [6]: import numpy as np
In [7]: df = pd.DataFrame(np.random.randn(6,4),columns=list('ABCD'))
In [8]: df
Out[8]:
A B C D
0 -0.647598 -0.584578 -1.647857 -0.995705
1 -2.062707 1.293265 0.246728 -0.096330
2 -2.218540 -0.484086 -1.400132 -0.824412
3 -1.952414 -1.558925 0.993463 -0.197446
4 -0.346778 0.387028 0.391962 1.186592
5 -0.945258 -1.609624 0.823679 0.420984
其实,DataFrame对象里的数据使用Numpy的array对象保存的,可以使用df.values来查看原始数据。DataFrame对象的每一行和每一列都是一个Series对象,可以使用行索引来访问一行数据,也可以使用列索引来访问一列数据。
In [9]: df.iloc[0]
Out[9]:
A -0.647598
B -0.584578
C -1.647857
D -0.995705
Name: 0, dtype: float64
In [10]: df.A
Out[10]:
0 -0.647598
1 -2.062707
2 -2.218540
3 -1.952414
4 -0.346778
5 -0.945258
Name: A, dtype: float64
In [11]: print("Row data type: {}".format(type(df.iloc[0])))
Row data type: <class 'pandas.core.series.Series'>
In [12]: print("Column data type: {}".format(type(df.A)))
Column data type: <class 'pandas.core.series.Series'>
Pandas提供了简洁的数据访问功能,通过DataFrame.shape可以查看数据的维度信息:
In [13]: df.shape
Out[13]: (6, 4)
通过DataFrame.head()和Data