Python处理Excel-使用pandas处理时间格式数据

欢迎关注微信公众号:excelwork

     通常我们拿到数据,首先要确认的就是数据完整性和可用性,比如数据范围、数据项缺失情况、数据格式是否统一、脏数据等。同样,面对时间格式数据,我们根据所使用的工具和环境,同样要确立是否可统一进行处理、分析等

    本篇介绍主要为以下几项内容:

  • 星期判别

  • 年月日等周期提取

  • 时间增加或减少

  • 时间差计算

数据示例如下:

Python处理Excel-使用pandas处理时间格式数据_第1张图片

 

01 返回星期几

    我们做趋势分析,通过会拉一段时间出来,这时,某些场景加上星期判别的列,会让我们更直观对比日期变化。这里我们可以利用pandas的day_day_name函数:

rawalldata['weekdate']=rawalldata['下单时间'].dt.day_name()

得到的结果如下:

Python处理Excel-使用pandas处理时间格式数据_第2张图片

 

02 年月日等周期提取

    通过日期进行日、月、年度统计的步骤在很多分析开始前不可缺少,因此,我们要提取出日期中的年份、季度、月份等。

print(rawalldata['下单时间'].dt.year)print(rawalldata['下单时间'].dt.quarter)print(rawalldata['下单时间'].dt.month)

结果如下:

Python处理Excel-使用pandas处理时间格式数据_第3张图片

得到年-月样式:

rawalldata['下单时间'].apply([lambda x:x.strftime('%Y-%m')])

 

03 时间增加或减少

    这里说的意思的,比如想拿到2020-01-01的上周、上月、去年或未来的日期,如何快速计算拿到呢? 如果想返回指定天数差异的日期,可利用datetime库的timedelta函数,可选参数如下:datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

    比如weeks=1,表示下周的日期、-1表示上周的日期;days=-1,表示昨天的日期、1表示明天的日期;

rawalldata['日期加减']=rawalldata['下单时间']+dt.timedelta(days=-1)

结果如下:

Python处理Excel-使用pandas处理时间格式数据_第4张图片

04 时间差计算

    这如果已经是时间格式数据,直接相减即可,比如这样:

print(rawalldata['日期加减']-rawalldata['下单时间'])

得到结果:

    如果是2020-01-10和20200101这两种类型的数据相减,一定要注意20200101 的数据格式,如果是数值型,需要转换为字符串类型,否则会按秒计算,然后再进行to_datetime转换。

rawalldata['格式转换']=pd.to_datetime(rawalldata['日期'].apply(lambda s:str(s)))

你可能感兴趣的:(数据分析方法,时间序列,Python,python,数据分析,大数据,to_datetime,时间处理)