cover_pandas_date.jpg
前言
pandas有着强大的日期数据处理功能,本期我们来了解下pandas处理日期数据的一些基本功能,主要包括以下三个方面:
按日期筛选数据
按日期显示数据
按日期统计数据
运行环境为 windows系统,64位,python3.5。
1 读取并整理数据
首先引入pandas库
import pandas as pd
从csv文件中读取数据
df = pd.read_csv('date.csv', header=None)
print(df.head(2))
0 1
0 2013-10-24 3
1 2013-10-25 4
整理数据
df.columns = ['date','number']
df['date'] = pd.to_datetime(df['date']) #将数据类型转换为日期类型
df = df.set_index('date') # 将date设置为index
print(df.head(2))
print(df.tail(2))
print(df.shape)
number
date
2013-10-24 3
2013-10-25 4
number
date
2017-02-14 6
2017-02-22 6
(425, 1)
df的行数一共是425行。
查看Dataframe的数据类型
print(type(df))
print(df.index)
print(type(df.index))
DatetimeIndex(['2013-10-24', '2013-10-25', '2013-10-29', '2013-10-30',
'2013-11-04', '2013-11-06', '2013-11-08', '2013-11-12',
'2013-11-14', '2013-11-25',
...
'2017-01-03', '2017-01-07', '2017-01-14', '2017-01-17',
'2017-01-23', '2017-01-25', '2017-01-26', '2017-02-07',
'2017-02-14', '2017-02-22'],
dtype='datetime64[ns]', name='date', length=425, freq=None)
构造Series类型数据
s = pd.Series(df['number'], index=df.index)
print(type(s))
s.head(2)
date
2013-10-24 3
2013-10-25 4
Name: number, dtype: int64
2 按日期筛选数据
按年度获取数据
print('---------获取2013年的数据-----------')
print(df['2013'].head(2)) # 获取2013年的数据
print(df['2013'].tail(2)) # 获取2013年的数据
---------获取2013年的数据-----------
number
date
2013-10-24 3
2013-10-25 4
number
date
2013-12-27 2
2013-12-30 2
获取2016至2017年的数据
print('---------获取2016至2017年的数据-----------')
print(df['2016':'201