博客
关于我
理解Python系统下的时间格式
阅读量:348 次
发布时间:2019-03-04

本文共 3102 字,大约阅读时间需要 10 分钟。

  • Overview

    pandas/numpy/datetime/time,这四个module是常用的时间相关模块。timestampdatetimestr是三大类常用的数据类型。需要理顺彼此之间错综复杂的关系。

    The Python world has a number of avaiable representations of dates, times, deltas, and timespans.

  • Native Python dates and times: datetime and dateutil

    Python’s basic objects for working with dates and times reside in the built-in datetime module.

    Third-party dateutil can be used to parse dates from a variety of string formats.

    • The datetime module supplies classes for manipulating dates and times.

    • The dateutil module provides powerful extensions to the standard datetime module.

  • Typed arrays of times: Numpy's datetime64

    The weaknesses of Python’s datetime format inspired the Numpy team to add a set of native time series date type to Numpy.

    The datetime64 dtype encodes dates as 64-bit integers, and thus allows arrays of dates to be represented very compactly.

    The datetime64 requires a very specific input format.

    Because of the uniform type in NumPy datetime64 arrays, this type of operation can be accomplished much more quickly than if we were working directly with Python’s datetime objects.

    • Starting in NumPy 1.7, there are core array date types which natively support datetime functionality. The data type is called “datetime64”, so named because “datetime” is already taken by datetime library included in Python.

      The most basic way to create datetimes is from strings in ISO8601 date or datetime format.

      The Unit for internal storage is :

      1. automatically selected from the form of the string,
      2. and can be either :
        1. a unit: Y M W D
        2. a time unit: h m s ms us ns ps fs as

      datetime64 is the data type; datetime64[ns] or datetime64[s] or datetime64[unit] is datetime64 with unit.

      Finally, we will note that while the datetime64 data type addresses some of the deficiencies of the built-in Python datetime type, it lacks many of the convenient methods and functions provided by datetime and especially dateutil.

  • Dates and times in pandas: best of both worlds

    Pandas builds upon all the tools just discussed to provide Timestamp object, which combines the ease-of-use of datetime and dateutil with the efficient storage and vectorized interface of numpy.datetime64.

    From a group of these Timestamp objects, Pandas can construct a DatetimeIndex that can be used to index data in a Series or DataFrame.

    Pandas Time Series: Indexing by Time

    Where the Pandas time series tools become useful is when you begin to index data by timestamps.

    Pandas Time Series Data Structures

    For timestamps, Pandas provides the Timestamp type: it is essentially a replacement for Python’s native datetime, but is based on the more efficient numpy.datetime64 date type.

    For time Periods, Pandas provides the Period type, based on numpy.datetime64.

    For time deltas or durations, Pandas provides the Timedelta type, based on numpy.timedelta64, more efficient replacement for Python’s native datetime.timedelta type.

  • 汇总

    Python native is datetime.datetime data type from module: datetime;

    更高效的是datetime64 data type from module: NumPy;

    结合上述两者优点的是TimeStamp / Timedelta data type from module: Pandas;

  • 不同数据类型之间的转换

    在这里插入图片描述

  • References

转载地址:http://vtge.baihongyu.com/

你可能感兴趣的文章
mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
查看>>
mysql中json_extract的使用方法
查看>>
mysql中json_extract的使用方法
查看>>
mysql中kill掉所有锁表的进程
查看>>
mysql中like % %模糊查询
查看>>
MySql中mvcc学习记录
查看>>
mysql中null和空字符串的区别与问题!
查看>>
MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
查看>>
MYSQL中TINYINT的取值范围
查看>>
MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
查看>>
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>