目录
创建序列和数组
import pandas as pd
import numpy as np
s = pd.Series([1, 3, 5, np.NAN, 8, 4]) #创建序列
s
Out[6]:
0 1.0
1 3.0
2 5.0
3 NaN
4 8.0
5 4.0
dtype: float64
dates = pd.date_range('20160301',periods=6) # 创建日期序列,periods为日期个数
dates
Out[8]:
DatetimeIndex(['2016-03-01', '2016-03-02', '2016-03-03', '2016-03-04',
'2016-03-05', '2016-03-06'],
dtype='datetime64[ns]', freq='D')
#创建一个6行4列,以dates为行标,以ABCD为列标的二维数组,注意np.random.randn为创建二维数组
data = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
data
Out[5]:
A B C D
2016-03-01 -0.776398 -0.113742 -0.482815 -2.377686
2016-03-02 -0.232630 0.929686 -0.029953 0.830375
2016-03-03 -0.858234 1.130634 1.450110 -1.312117
2016-03-04 -0.878027 -0.219138 -0.459148 0.428571
2016-03-05 0.021880 -1.655298 -1.618421 0.541966
2016-03-06 -0.903818 0.702461 1.966906 -0.348830
#以字典的方式创建二维数组
d={'A':1,'B':pd.Timestamp('20130301'),'C':range(4),'D':np.arange(4)}
d
Out[7]:
{'A': 1,
'B': Timestamp('2013-03-01 00:00:00'),
'C': range(0, 4),
'D': array([0, 1, 2, 3])}
#利用d生成二维数组
df = pd.DataFrame(d)
df
Out[9]:
A B C D
0 1 2013-03-01 0 0
1 1 2013-03-01 1 1
2 1 2013-03-01 2 2
3 1 2013-03-01 3 3
查看数据
#查看列
df.A
Out[10]:
0 1
1 1
2 1
3 1
Name: A, dtype: int64
#高效率的数据索引loc,只认标签名如:20160305
df.loc[A]
data.loc['20160302':'20160305',['B','C']]
#data.iloc可以选择索引代号
data,iloc[:,1:3]#选择所有行的1-3列
#查看A的数据类型,A为一个序列
type(df.A)
Out[11]: pandas.core.series.Series
data.head(2)#查看前几行,默认前5行
Out[14]:
A B C D
2016-03-01 -0.776398 -0.113742 -0.482815 -2.377686
2016-03-02 -0.232630 0.929686 -0.029953 0.830375
data.tail()#查看后几行,默认5行
Out[15]:
A B C D
2016-03-02 -0.232630 0.929686 -0.029953 0.830375
2016-03-03 -0.858234 1.130634 1.450110 -1.312117
2016-03-04 -0.878027 -0.219138 -0.459148 0.428571
2016-03-05 0.021880 -1.655298 -1.618421 0.541966
2016-03-06 -0.903818 0.702461 1.966906 -0.348830
data.index#查看行标
data.columns#查看列标
data.values#查看值
data.describe()#查看数据的统计数据
Out[16]:
A B C D
count 6.000000 6.000000 6.000000 6.000000
mean -0.604538 0.129100 0.137780 -0.372954 #均值
std 0.397235 1.033157 1.335795 1.251326 #方差
min -0.903818 -1.655298 -1.618421 -2.37768