在pandas中有两类非常重要的数据结构,即序列Series和数据框DataFrame。Series类似于numpy中的一维数组,除了通吃一维数组可用的函数或方法,而且其可通过索引标签的方式获取数据,还具有索引的自动对齐功能;DataFrame类似于numpy中的二维数组,同样可以通用numpy数组的函数和方法,而且还具有其他灵活应用。
一、首先是引入pandas和numpy,这是经常配合使用的两个包,pandas依赖于numpy,引入以后我们可以直接使用np/pd来表示这个两个模块。
In [1]: import numpy as np
In [2]: import pandas as pd
1)通过二维数组创建数据框,我们看一下如何创建一个6X4的数据:randn函数用于创建随机数,参数表示行数和列数,dates创建的索引列。
In [3]: dates = pd.date_range('20170808',periods=6)
In [4]: dates
Out[4]:
DatetimeIndex(['2017-08-08', '2017-08-09', '2017-08-10', '2017-08-11',
'2017-08-12', '2017-08-13'],
dtype='datetime64[ns]', freq='D')
In [5]: df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))
In [6]: df
Out[6]:
A B C D
2017-08-08 -0.251957 1.408053 -0.085674 0.365377
2017-08-09 -0.141047 0.445702 -0.560573 0.251600
2017-08-10 -0.218148 1.619402 -1.799525 -0.697128
2017-08-11 -0.542612 -1.401814 -0.158879 0.969136
2017-08-12 0.268779 -1.376531 0.950630 -1.041401
2017-08-13 0.488717 -0.267509 0.112117 -1.166227
2)
通过传递一个能够被转换成类似序列结构的字典对象来创建一个DataFrame:索引是自动创建的整数
In [7]: df1 =