其他
Pandas时间序列数据操作
一、 pd.to_datetime()
将日期字符串转化为datetime类型数据
import pandas as pd
pd.to_datetime('2020-05-03')
Timestamp('2020-05-03 00:00:00')
二、datetime可以比大小
day1 = pd.to_datetime('2020-05-01')
day3 = pd.to_datetime('2020-05-03')
day1<day3
True
导入实验数据
import pandas as pd
df = pd.read_csv('data/aapl.csv')
df
三、从df中筛选出符合条件的数据
把小(早)于某日期的数据筛选出来 把某日期区间的数据筛选出来
我们需要先将Date转化为datetime数据类型
#用pd.to_datetime处理Date列
df['Date'] = pd.to_datetime(df['Date'])
df
#选取2016-12-01之后的数据
someday = pd.to_datetime('2016-12-01')
df[df['Date']>someday]
#选取2016-12-01之前的数据
someday = pd.to_datetime('2016-12-01')
df[df['Date']<someday]
#把2016-12-01到2017-05-01之间的数据选出来
mindate = pd.to_datetime('2016-12-01')
maxdate = pd.to_datetime('2017-05-01')
df[(mindate<df['Date']) & (df['Date']<maxdate)]
四、日期Series.dt操作
datetime数据类型的Series有dt属性,而dt有以下方法属性(方法)
year month day hour minute second day_name() month_name()
#每条记录的所在年份
df['Date'].dt.year
df['Date'].dt.month
df['Date'].dt.day
df['Date'].dt.day_name()
df['Date'].dt.month_name()
#选择周一 的所有的数据
df[df['Date'].dt.day_name()=='Monday']
五、将日期Series设置为行索引
注意这里的Series是datetime类型的Series
选择某年数据 选择某年某月的数据 选择某日的数据
#将Date设置为index
df.set_index('Date', inplace=True)
df
#选择2016
df['2016']
#选择某年月数据
df['2016-12']
#选择某日数据
df['2016-12-02']
往期文章
看在这么多数据面子上,给我点好看可好❤