pandas是在numpy的基础上开发的数据处理工具包,提供了快速、灵活的数据结构。
它适用于处理一下类型的数据:
与SQL与Excel表类似,含异构列的表格数据;
有序和无序的时间序列数据;
带行列标签的矩阵数据;
任意其他形式的观测、统计数据集,且不必事先标记。
pandas的主要数据结构:
series(一维数据,同构数组)
DataFrame(二维数据,带标签的、大小可变、异构表格)
一、快速入门
- 用值列表生成Series
series = pd.Series([1, 3, 5, np.nan, 6, 8])
series
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
- 生成DataFrame
用带索引和标签的Numpy数组生成DataFrame
In [5]: dates = pd.date_range(‘20130101’, periods=6)
In [6]: dates
Out[6]:
DatetimeIndex([‘2013-01-01’, ‘2013-01-02’, ‘2013-01-03’, ‘2013-01-04’,
‘2013-01-05’, ‘2013-01-06’],
dtype=‘datetime64[ns]’, freq=‘D’)
In [7]: df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list(‘ABCD’))
In [8]: df
Out[8]:
A B C D
2013-01-01 0.469112 -0.282863 -1.509059 -1.135632
2013-01-02 1.212112 -0.173215 0.119209 -1.044236
2013-01-03 -0.861849 -2.104569 -0.494929 1.071804
2013-01-04 0.721555 -0.706771 -1.039575 0.271860
2013-01-05 -0.424972 0.567020 0.276232 -1.087401
2013-01-06 -0.673690 0.113648 -1.478427 0.524988
用Series字典对象生成DataFrame
In [9]: df2 = pd.DataFrame({‘A’: 1.,
‘B’: pd.Timestamp(‘20130102’),
‘C’: pd.Series(1, index=list(range(4)), dtype=‘float32’),
‘D’: np.array([3] * 4, dtype=‘int32’),
‘E’: pd.Categorical([“test”, “train”, “test”, “train”]),
‘F’: ‘foo’})
In [10]: df2
Out[10]:
A B C D E F
0 1.0 2013-01-02 1.0 3 test foo
1 1.0 2013-01-02 1.0 3 train foo
2 1.0 2013-01-02 1.0 3 test foo
3 1.0 2013-01-02 1.0 3 train foo