热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据处理——时间数据处理

时间类型数据的转换(字符串转为时间)pd.to_datetime(arg,errorsraise,dayfirstFalse,yearfirstFals

时间类型数据的转换(字符串转为时间)

pd.to_datetime(arg, errors='raise', dayfirst=False, yearfirst=False, utc=None, box=True, format=None, exact=True, unit=None, infer_datetime_format=False, origin='unix')

  • arg:表示想要转换的数据,无默认。
  • format:%Y表示年份,%m表示月,%d表示天,%H表示小时,%M表示分钟,%S表示秒。
    • 在格式化的时候,需要配合实际的分隔符,例如“2012/12*5 00/00:00”,此时format = "%Y/%m*%d %H/%M:%S"。

import pandas as pd
# data为已导入的表格
data['发生时间'] = pd.to_datetime(data['发生时间'],format='%Y%m%d%H%M%S')
data[
'发生时间'].head()

  注:如果dtype为datetime64则说明转换成功,可继续后续操作。

 

时间数据内部信息提取

属性名称属性解释属性名称属性解释
yearweek一年中第几周
monthquarter季节
dayweekofyear一年中第几周
hour小时dayofyear一年中的第几天
minute分钟dayofweek一周第几天
secondweekday一周第几天
date()日期weekday_name星期名称
time()时间is_leap_year是否闰年

data['年份'] = [i.year for i in data['发生时间']]
data[
'月份'] = [i.month for i in data['发生时间']]
data[
'日期'] = [i.day for i in data['发生时间']]
data[
'小时'] = [i.hour for i in data['发生时间']]
data[
'分钟'] = [i.minute for i in data['发生时间']]
data[
''] = [i.second for i in data['发生时间']]
data[
'星期'] = [i.dayofweek for i in data['发生时间']] ## 注意第几天从0开始
data['星期'] = [i.weekday for i in data['发生时间']]
data[
'日期'] = [i.date() for i in data['发生时间']] ## 提取日期是方法,不是属性(需要加上())
data['时间'] = [i.time() for i in data['发生时间']] ## 提取时间是方法,不是属性(需要加上())
data['季节'] = [i.quarter for i in data['发生时间']] ## 季节从1开始,至4结束
data['第几周'] = [i.week for i in data['发生时间']]
data[
'第几天'] = [i.dayofyear for i in data['发生时间']]
data[
'week'] = [i.weekday_name for i in data['发生时间']]
data[
'是否闰年'] = [i.is_leap_year for i in data['发生时间']]

 

函数Timedelta(例如多少秒)

  Timedelta实际上也是时间数据(即datetime)相减之后的类型。

data['发生时间'].min() - data['发生时间'].max()

  Timedelta('-23 days +07:19:17')

pd.Timedelta(**args)

周期名称单位解释周期名称单位解释
weeks星期secondss
daysDmillisecondsms毫秒
hoursh小时microsecondsus微秒
minutesmnanosecondsns纳秒

# 先输出参照时间
data['发生时间'].min()

Timestamp('2014-10-19 06:39:17')

# 不足之处为:这里默认十月只有30天
data['发生时间'].min() + pd.Timedelta(days = 23)

Timestamp('2014-11-11 06:39:17')

data['发生时间'].min() + pd.Timedelta(weeks = 23)

Timestamp('2015-03-29 06:39:17')

data['发生时间'].min() + pd.Timedelta(microseconds = 23)

Timestamp('2014-10-19 06:39:17.000023')


转:https://www.cnblogs.com/WoLykos/p/9380731.html



推荐阅读
author-avatar
鍾情噯伱_616
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有