pandas时间序列之pd.to_datetime()的实现

目录
  • 解析来自各种来源和格式的时间序列信息
  • 时间序列解析之小试牛刀
  • 时间序列解析之磨刀霍霍
    • 1. 指定识别的format
    • 2. 遇到DataFrame
    • 3. 遇到不能识别的处理方法
    • 4. origin的用法

解析来自各种来源和格式的时间序列信息

pd.to_datetime(
    arg,#int, float, str, datetime, list, tuple, 1-d array, Series DataFrame/dict-like
    errors='raise',# {'ignore', 'raise', 'coerce'}, default 'raise'
    dayfirst=False,
    yearfirst=False,
    utc=None,
    format=None,#格式,比如 "%d/%m/%Y"
    exact=True,
    unit=None,#单位str, default 'ns',可以是(D,s,ms,us,ns)
    infer_datetime_format=False,
    origin='unix',#指定从什么时间开始,默认为19700101
    cache=True,
)

时间序列解析之小试牛刀

pd.to_datetime()

import datetime
import pandas as pd
import numpy as np
dti = pd.to_datetime(['1/1/2018', np.datetime64('2018-01-01'),
                      datetime.datetime(2018, 1, 1)])
dti

DatetimeIndex([‘2018-01-01’, ‘2018-01-01’, ‘2018-01-01’], dtype=‘datetime64[ns]’, freq=None)

pd.to_datetime(['2020-04-20', '20/04/2020','Apr 20 2020'])

DatetimeIndex([‘2020-04-20’, ‘2020-04-20’, ‘2020-04-20’], dtype=‘datetime64[ns]’, freq=None)

import time
time.asctime()

‘Tue Apr 7 21:50:17 2020’

pd.to_datetime(time.asctime())

Timestamp(‘2020-04-07 21:50:17’)

还有更加偷懒的办法,假如整理数据时遇到了大量的时间需要输入,比如2020-11-11 00:00:00,输入-和:太浪费时间了,而且时间之间没有什么变化规律可循,这种情况下可以直接输入20201111000000进行记录,之后再借助pd.to_datetime()解析,省时省力一步到位。

pd.to_datetime('20201111000000')

Timestamp(‘2020-11-11 00:00:00’)

时间序列解析之磨刀霍霍

1. 指定识别的format

pd.to_datetime('2020/12/12', format='%Y/%m/%d')

Timestamp(‘2020-12-12 00:00:00’)

pd.to_datetime('12-11-2010 00:00', format='%d-%m-%Y %H:%M')

Timestamp(‘2010-11-12 00:00:00’)

2. 遇到DataFrame

df = pd.DataFrame({'year': [2015, 2016],
   ....:                    'month': [2, 3],
   ....:                    'day': [4, 5],
   ....:                    'hour': [2, 3]})
df

year month day hour
0 2015 2 4 2
1 2016 3 5 3

pd.to_datetime(df)

0 2015-02-04 02:00:00
1 2016-03-05 03:00:00
dtype: datetime64[ns]

pd.to_datetime(df[['year','month','day']])

0 2015-02-04
1 2016-03-05
dtype: datetime64[ns]

3. 遇到不能识别的处理方法

pd.to_datetime(['2009/07/31', 'asd'], errors='ignore')

Index([‘2009/07/31’, ‘asd’], dtype=‘object’)

pd.to_datetime(['2009/07/31', 'asd'], errors='raise')

ParserError: Unknown string format: asd

pd.to_datetime(['2009/07/31', 'asd'], errors='coerce')

DatetimeIndex([‘2009-07-31’, ‘NaT’], dtype=‘datetime64[ns]’, freq=None)

4. origin的用法

指定时间

pd.to_datetime([1, 2, 3], unit='D', origin=pd.Timestamp('1960-01-01'))

DatetimeIndex([‘1960-01-02', ‘1960-01-03', ‘1960-01-04'], dtype=‘datetime64[ns]', freq=None)

不指定时间则默认从19700101开始

pd.to_datetime([1, 2, 3], unit='D')

DatetimeIndex([‘1970-01-02', ‘1970-01-03', ‘1970-01-04'], dtype=‘datetime64[ns]', freq=None)

到此这篇关于pandas时间序列之pd.to_datetime()的实现的文章就介绍到这了,更多相关pandas pd.to_datetime()内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • pandas的to_datetime时间转换使用及学习心得

    前言 昨天在网赛中做了一道题,虽然是外国人的Englis题目,但是内容很有学习的价值,值得仔细的学习,今天就把我所收获的一部分记录下来.其一:做个学习的资料记录.其二:分享出来,供大家参考. (收获了对处理大数据的又一次认识!!!) 这是一道将DataFrame的日期数据转换为python能认识的题目.这里重点讲一下to_datetime的部分使用. 首先说一下: 1/17/07 has the format "%m/%d/%y" 17-1-2007 has the format &q

  • pandas时间序列之pd.to_datetime()的实现

    目录 解析来自各种来源和格式的时间序列信息 时间序列解析之小试牛刀 时间序列解析之磨刀霍霍 1. 指定识别的format 2. 遇到DataFrame 3. 遇到不能识别的处理方法 4. origin的用法 解析来自各种来源和格式的时间序列信息 pd.to_datetime( arg,#int, float, str, datetime, list, tuple, 1-d array, Series DataFrame/dict-like errors='raise',# {'ignore',

  • Pandas时间序列基础详解(转换,索引,切片)

    时间序列的类型: 时间戳:具体的时刻 固定的时间区间:例如2007年的1月或整个2010年 时间间隔:由开始时间和结束时间表示,时间区间可以被认为是间隔的特殊情况 实验时间和消耗时间:每个时间是相对于特定开始时间的时间的量度,(例如自从被放置在烤箱中每秒烘烤的饼干的直径) 日期和时间数据的类型及工具 datetime模块中的类型: date 使用公历日历存储日历日期(年,月,日) time 将时间存储为小时,分钟,秒,微秒 datetime 存储日期和时间 timedelta 表示两个datet

  • pandas时间序列之如何将int转换成datetime格式

    目录 将int转换成datetime格式 原始时间格式 pandas 时间数据处理 转化时间类型 生成时间序列 提取时间属性 计算时间间隔 计算时间推移 获取当前机器的支持的最大时间和最小时间 将int转换成datetime格式 原始时间格式 users['timestamp_first_active'].head() 原始结果: 0 200903190432551 200905231748092 200906092312473 200910310601294 20091208061105Nam

  • python中时间转换datetime和pd.to_datetime详析

    前言 我们在python对数据进行操作时,经常会选取某一时间段的数据进行分析.这里为大家介绍两个我经常用到的用来选取某一时间段数据的函数:datetime( )和pd.to_datetime( ). (一)datetime( ) (1)获取指定的时间和日期.datetime(%Y,%m,%d,%H,%M,%S) datetime共有6个参数,分别代表的是年月日时分秒.其中年月日是必须要传入的参数,时分秒可以不传入,默认全为零. eg: (2)将Str和Unicode转化为datetimedate

  • Pandas时间序列:重采样及频率转换方式

    如下所示: import pandas as pd import numpy as np 一.介绍 重采样(resampling)指的是将时间序列从一个频率转换到另一个频率的处理过程: 将高频率(间隔短)数据聚合到低频率(间隔长)称为降采样(downsampling): 将低频率数据转换到高频率则称为升采样(unsampling): 有些采样即不是降采样也不是升采样,例如将W-WED(每周三)转换为W-FRI: 二.resample方法–转换频率的主力函数 rng = pd.date_range

  • Pandas时间序列:时期(period)及其算术运算详解

    import pandas as pd import numpy as np 一.时间类型及其在python中对应的类型 时间戳–timestamp 时间间隔–timedelta 时期–period 二.时期 时期表示的是时间区间,比如数日.数月.数季.数年等 1.定义一个Period p = pd.Period(2007,freq='A-DEC') #表示以12月作为结束的一整年,这里表示从2007-01-01到2017-12-31的全年 p Period('2007', 'A-DEC') 2

  • pd.to_datetime中时间object转换datetime实例

    目录 数据预处理 方式一 方式二 方式三 参考: 时间object转换datetime实例 首先说一下: 1/17/07 has the format “%m/%d/%y” 17-1-2007 has the format “%d-%m-%Y” 这是一部分的时间转换格式,通过以上的格式,你可以将DataFrame中的时间格式转换为以下等python格式: 0 2007-03-02 1 2007-03-22 2 2007-04-06 3 2007-04-14 4 2007-04-15 Name:

  • Pandas数据连接pd.concat的实现

    目录 1.按行连接 2.按列连接 3.合并交集 扩展 4.与序列合并 5.指定索引 Pandas数据可以实现纵向和横向连接,将数据连接后会形成一个新对象(Series或DataFrame) 连接是最常用的多个数据合并操作 pd.concat()是专门用于数据连接合并的函数,它可以沿着行或列进行操作,同时可以指定非合并轴的合并方式(如合集.交集等) pd.concat()会返回一个合并后的DataFrame 语法 pd.concat(objs, axis=0, join='outer', igno

  • Python Pandas数据合并pd.merge用法详解

    目录 前言 语法 参数 1.连接键 2.索引连接 3.多连接键 4.连接方法 5.连接指示 总结 前言 实现类似SQL的join操作,通过pd.merge()方法可以自由灵活地操作各种逻辑的数据连接.合并等操作 可以将两个DataFrame或Series合并,最终返回一个合并后的DataFrame 语法 pd.merge(left, right, how = 'inner', on = None, left_on = None, right_on = None, left_index = Fal

  • Pandas时间序列重采样(resample)方法中closed、label的作用详解

    Pandas提供了便捷的方式对时间序列进行重采样,根据时间粒度的变大或者变小分为降采样和升采样: 降采样:时间粒度变大.例如,原来是按天统计的数据,现在变成按周统计.降采样会涉及到数据的聚合,比如天数据变成周数据,那么就得对一周的7天数据聚合,聚合的方式可以是求和,求均值等等. 升采样:时间粒度变小.例如,原来是按周统计的数据,现在变成按天统计.升采样会涉及到数据的填充,根据填充的方法不同填充的数据也就不同. 下面涉及的例子,都需要导入numpy和pandas(如下),并且对于降采样数据的聚合做

随机推荐