1.日期数据处理
1.1DataFrame的日期数据转换
使用Pandas的to_determine方法
to_determine可以用来批量进行日期数据转换,对于处理大数据非常的实用和方便,它可以将日期和数据转换成所需的各种格式。、
pandas.to_datetime(arg, errors='ignore', dayfirst=False, yearfirst=False, utc=None, box=True, format=None, exact=True, unit=None, infer_datetime_format=False, orgin='unix', cache=False)
import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
df=pd.DataFrame({'原日期':['14-Feb-20', '02/14/2020', '2020.02.14', '2020/04/14', '20200214']})
df['转换后的日期']=pd.to_datetime(df['原日期'])
print(df)
输出结果
原日期 转换后的日期 0 14-Feb-20 2020-02-14 1 02/14/2020 2020-02-14 2 2020.02.14 2020-02-14 3 2020/04/14 2020-04-14 4 20200214 2020-02-14
还可以实现从DataFrame对象中的多列,如年、月、日各列组合成一列日期。而键值是常用的日期缩略语。组合要求如下:
必选:year、month、day。
可选:hour、minute、second、millisecond(毫秒)、microsecond(微秒)、nanosecond(纳秒)
import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
df = pd.DataFrame({'year':[2018, 2019, 2020],
'month':[1, 3, 2],
'day':[4, 5, 14],
'hour':[13, 8, 2],
'minute':[23, 12, 14],
'second':[2, 4, 0]})
df['组合后的日期'] = pd.to_datetime(df)
print(df)
输出结果
year month day hour minute second 组合后的日期 0 2018 1 4 13 23 2 2018-01-04 13:23:02 1 2019 3 5 8 12 4 2019-03-05 08:12:04 2 2020 2 14 2 14 0 2020-02-14 02:14:00
1.2dt对象的使用
dt对象是series对象中用于获取日期属性的一个访问器对象,通过它可以获取日期中的年,月,日,星期数,季节等,还可以判断日期是否处在年底。
Series.dt()
获取年,月,日,代码如下:
df['年'],df['月'],df['日']=df['日期'].dt.year,df['日期'].dt.month,df['日期'].dt.day
从日期判断出所处的星期数
df['星期几']=df['日期'].dt.day_name()
从日期判断所处的季度
df['季度']=df['日期'].dt.quarter
从日期判断是否为年底的最后一天
df['是否年底']=df['日期'].dt.is_year_end
1.3获取日期区间的数据
获取日期区间的数据的方法是直接在dataframe对象中输入日期或日期区间,但前提必须设置日期为索引,距离如下:
获取2018年的数据:
df1['2018']
获取2017年~2018年的数据
df1['2017':'2018']
获取某月的数据
df1['2018-07']
获取具体某天的数据
df1['2018-05-06':'2018-05-06']



