python数据分析005_pandas的时间序列
一. python日期和时间数据类型
1.datetime的time方法可以创建时间,date方法可以创建日期,datetime方法则是日期和时间的结合体。
通过year、month、day、hour、minute、second属性,可以获取到相应的日期或者时间的值。
- date = datetime.date(2019, 9, 9)
- time = datetime.time(13, 14, 20)
- datetime = datetime.datetime(2019, 9, 9, 13, 14, 20)
- print(datetime.year)
- print(datetime.minute)
2.使用datetime.now()方法可以获取到当前时间
- datetime = datetime.datetime.now()
二.转换时间格式
1.strftime()方法的作用是将时间格式转化为自定义字符串格式,格式可以完全自定义。
- 将datetime.datetime(2019, 9, 9, 13, 14, 20)转换成9/9/2019 13:14样式的字符串。
- date_time = datetime.datetime(2019, 9, 9, 13, 14, 20)
- str_time = date_time.strftime('%m/%d/%Y %H:%M')
2.时间格式
3.strptime()方法的作用是字符串时间转化为datetime格式,需要注意的是按一定的格式输出时间
- strp = datetime.datetime.strptime('08-23-19 20:13:59', '%m-%d-%y %H:%M:%S')
三.Pandas时间序列基础
1.Pandas的date_range()方法可以快速创建出一个日期范围。
- pd.date_range(start=None,end=None,periods=None,freq="D")
- start:日期范围的开始;end:日期范围的结束;periods:固定日期的个数;freq:日期偏移量,取值为string, 默认为'D',即:一天为日期偏移量
- date= pd.date_range(start='20190505',end='20190606',freq="10D")
- date= pd.date_range(start='20190505',periods=10,freq="D")
2.频率的缩写
3.有时候我们会对一天或者一个月的数据进行分析,这就需要我们将时间设置成数据的索引,然后通过时间索引获取到一定时间范围内的数据进行分析。
- import pandas as pd
- import numpy as np
- time_index = pd.date_range('2019-01-01', periods=400)
- time_data = np.random.randint(100,size=400)
- date_time = pd.Series(data=time_data,index=time_index)
- print(date_time)
然后可以按照时间索引筛选数据
- date_time['2020']
- date_time['2019-10']
- date_time['2019-10-05':'2019-10-10']
4.Pandas的to_datetime()方法会将字符串类型的是时间转换成Timestamp('2019-10-05 00:00:00')时间戳类型。
- pd.to_datetime('2019-10-05')
5.如果想对时间格式修改,还可以使用to_pydatetime()方法将Timestamp类型转换成datetime类型。
- d.to_datetime('2019-10-05').to_pydatetime()
6.需要注意的是字符串日期中包含中文,我们可以这样处理
- pd.to_datetime('2019年10月10日',format='%Y年%m月%d日')
四.总结