zoukankan      html  css  js  c++  java
  • 数据处理——时间数据处理

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

    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则说明转换成功,可继续后续操作。

    时间数据内部信息提取

    属性名称属性解释属性名称属性解释
    year week 一年中第几周
    month quarter 季节
    day weekofyear 一年中第几周
    hour 小时 dayofyear 一年中的第几天
    minute 分钟 dayofweek 一周第几天
    second weekday 一周第几天
    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 星期 seconds s
    days D milliseconds ms 毫秒
    hours h 小时 microseconds us 微秒
    minutes m nanoseconds ns 纳秒
    # 先输出参照时间
    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')

    一个佛系的博客更新者,随手写写,看心情吧 (っ•̀ω•́)っ✎⁾⁾
  • 相关阅读:
    C语言中的排序算法--冒泡排序,选择排序,希尔排序
    常见算法:C语言求最小公倍数和最大公约数三种算法
    提高软件测试效率的方法探讨
    面试官询问的刁钻问题——以及如何巧妙地应付它们
    软件测试面试--如何测试网页的登录页面
    如何衡量测试效率,如何提高测试效率!
    利用交叉测试提升软件测试效率
    交叉测试的必要性和遇到的问题
    敏捷测试
    HttpWatch工具简介及使用技巧
  • 原文地址:https://www.cnblogs.com/WoLykos/p/9380731.html
Copyright © 2011-2022 走看看