Python数据分析

Python数据分析 知识量:13 - 56 - 232

11.4 时间索引><

什么是时间索引- 11.4.1 -

时间索引就是对时间格式的数据按照时间进行选取的索引方式。在Python中,时间索引的数据类型为DatetimeIndex,下面创建一个包含时间索引的DataFrame对象:

import pandas as pd
df=pd.read_excel(r"D:\PythonTestFile\datetime.xlsx",index_col='datetime')
print(df.index,'\n')

运行结果为:

DatetimeIndex(['2010-01-06', '2010-02-07', '2010-03-08', '2011-05-09',
               '2012-08-10', '2012-09-11', '2013-01-12', '2014-04-13',
               '2014-07-14', '2015-11-15'],
              dtype='datetime64[ns]', name='datetime', freq=None)

选取某一段时间内的值- 11.4.2 -

利用时间索引可以选取某一段时间内的数据。下面是一些示例:

import pandas as pd
df=pd.read_excel(r"D:\PythonTestFile\datetime.xlsx",index_col='datetime')
print(df,'\n')
print(df.loc['2012'],'\n')  # 选取2012年的数据
print(df.loc['2012':'2015'],'\n')  # 选取2012年-2015年的数据
print(df.loc['2010-02':'2012-08'])  # 选取2010年2月-2012年8月的数据

运行结果为:

            code
datetime        
2010-01-06     1
2010-02-07     2
2010-03-08     3
2011-05-09     4
2012-08-10     5
2012-09-11     6
2013-01-12     7
2014-04-13     8
2014-07-14     9
2015-11-15    10 

            code
datetime        
2012-08-10     5
2012-09-11     6 

            code
datetime        
2012-08-10     5
2012-09-11     6
2013-01-12     7
2014-04-13     8
2014-07-14     9
2015-11-15    10 

            code
datetime        
2010-02-07     2
2010-03-08     3
2011-05-09     4
2012-08-10     5

非时间索引数值的选取- 11.4.3 -

对于不属于时间索引的时间格式数据,同样可以进行选取,下面是一些示例:

import pandas as pd
import datetime as dt  # 加载datetime模块
df=pd.read_excel(r"D:\PythonTestFile\datetime.xlsx")
print(df,'\n')
print(df[df['datetime']==dt.datetime(2010,3,8)],'\n')  # 选取2010年3月8日的数据
print(df[df['datetime']>dt.datetime(2013,1,1)],'\n')  # 选取2013年1月1日之后的数据
print(df[(df['datetime']>=dt.datetime(2013,1,1))&
         (df['datetime']<=dt.datetime(2014,5,1))])  # 选取2013年1月1日至2014年5月1日的数据

运行结果为:

    datetime  code
0 2010-01-06     1
1 2010-02-07     2
2 2010-03-08     3
3 2011-05-09     4
4 2012-08-10     5
5 2012-09-11     6
6 2013-01-12     7
7 2014-04-13     8
8 2014-07-14     9
9 2015-11-15    10 

    datetime  code
2 2010-03-08     3 

    datetime  code
6 2013-01-12     7
7 2014-04-13     8
8 2014-07-14     9
9 2015-11-15    10 

    datetime  code
6 2013-01-12     7
7 2014-04-13     8