# coding:utf-8
import numpy as np
import pandas as pd
datas = pd.date_range('20140729', periods=6)
# 先创建一个时间索引,所谓的索引(index)就是每一行数据的id,可以标识每一行的唯一值
print datas
DatetimeIndex(['2014-07-29', '2014-07-30', '2014-07-31', '2014-08-01',
'2014-08-02', '2014-08-03'],
dtype='datetime64[ns]', freq='D')
# 为了快速入门,我们看一下如何创建一个6X4的数据:randn函数用于创建随机数,参数表示行数和列数,dates是上一步创建的索引列
df = pd.DataFrame(np.random.randn(6, 4), index=datas, columns=list('ABCD'))
print df
A B C D
2014-07-29 0.345746 -0.876197 0.032886 0.986082
2014-07-30 1.922237 0.319706 0.021631 -1.236869
2014-07-31 0.011980 0.376963 -0.149351 -0.172322
2014-08-01 0.909287 2.186534 0.030290 -1.576527
2014-08-02 0.555227 1.123179 -1.687594 -0.957927
2014-08-03 0.232108 1.410862 -0.157567 -0.915288
# 我们还可以使用字典来创建数据框,例如创建一个列名为A的数据框,索引是自动创建的整数
df2 = pd.DataFrame({'A': np.random.randn(6), })
print df2
A
0 0.303553
1 -0.877653
2 0.239478
3 -0.179406
4 0.766085
# 这又是一个字典创建DataFrame的例子
df2 = pd.DataFrame({'A': pd.Timestamp('20140729'), 'B': pd.Series(1), })
print df2
A B
0 2014-07-29 1
# 假如字典内的数据长度不同,以最长的数据为准,比如B列有4行:
df2 = pd.DataFrame({'A': pd.Timestamp('20140729'), 'B': pd.Series(1, index=list(range(4))), })
print df2
A B
0 2014-07-29 1
1 2014-07-29 1
2 2014-07-29 1
3 2014-07-29 1
# 可以使用dtypes来查看各行的数据格式
print df2.dtypes
A datetime64[ns]
B int64
dtype: object
# 接着看一下如何查看数据框中的数据,看一下所有的数据
print df
A B C D
2014-07-29 0.345746 -0.876197 0.032886 0.986082
2014-07-30 1.922237 0.319706 0.021631 -1.236869
2014-07-31 0.011980 0.376963 -0.149351 -0.172322
2014-08-01 0.909287 2.186534 0.030290 -1.576527
2014-08-02 0.555227 1.123179 -1.687594 -0.957927
2014-08-03 0.232108 1.410862 -0.157567 -0.915288
# 使用head查看前几行数据(默认是前5行),不过你可以指定前几行
print df.head()
# 查看前三行数据
print df.head(3)
# 使用tail查看后2行数据
print df.tail(2)
# 查看数据框的索引
print df.index
# 查看列名用columns
print df.columns
Index([u'A', u'B', u'C', u'D'], dtype='object')
# 查看数据值,用values
print df.values
# 查看描述性统计,用describe
print df.describe()
A B C D
count 6.000000 6.000000 6.000000 6.000000
mean 0.662764 0.756841 -0.318284 -0.645475
std 0.688200 1.059073 0.676719 0.924433
min 0.011980 -0.876197 -1.687594 -1.576527
25% 0.260518 0.334020 -0.155513 -1.167134
50% 0.450486 0.750071 -0.063860 -0.936608
75% 0.820772 1.338941 0.028125 -0.358063
max 1.922237 2.186534 0.032886 0.986082
# 使用type看一下输出的描述性统计是什么样的数据类型——DataFrame数据
print type(df.describe())
# 使用T来转置数据,也就是行列转换
print df.T
# 对数据进行排序,用到了sort,参数可以指定根据哪一列数据进行排序。
print df.sort(columns='C')