精华内容
下载资源
问答
  • 之前在别的博客记过pandas处理时间量的...1.关于pandas的to_datetime函数的理解。 参考:https://blog.csdn.net/qq_36523839/article/details/79746977 df = pd.read_csv('../input/train.csv',parse_dates=["p...

    之前在别的博客记过pandas处理时间量的笔记,但是时间一长又忘了。。。所以决定另外写一篇记录下时序量的处理。

    1.关于pandas的to_datetime函数的理解。

    参考:https://blog.csdn.net/qq_36523839/article/details/79746977

    df = pd.read_csv('../input/train.csv',parse_dates=["purchase_date"])
    

    等价于:

    df['purchase_date'] = pd.to_datetime(df['purchase_date'])
    

    上面就是一个to_datetime函数的典型应用。下面说一些细节:
    1.

    1/17/07 has the format “%m/%d/%y”
    17-1-2007 has the format “%d-%m-%Y”

    2.原始时间数据是object类型的,这个object格式一般是python用来记录可变化的兑现的格式。这个格式它并不能认出是时间格式,尽管我们一眼就能看出(人和机器的区别在此)。
    to_datetime之后就可以用神奇的pandas.Series.dt.day或者pandas.Series.dt.month等方法获取到真实数据了!
    3.如果原始数据有的是1/17/07有的是17-1-2007的呢?
    那么直接用上面的语句会报错的。应用:

    data['date_parsed'] = pd.to_datetime(data['Date'],infer_datetime_format=True)
    

    另外一种改错方式见上面链接。

    2.关于datetime.dt.year等类型的理解

        df['purchase_date'] = pd.to_datetime(df['purchase_date'])
        df['year'] = df['purchase_date'].dt.year
        df['weekofyear'] = df['purchase_date'].dt.weekofyear
        df['month'] = df['purchase_date'].dt.month
        df['dayofweek'] = df['purchase_date'].dt.dayofweek
        df['weekend'] = (df.purchase_date.dt.weekday >=5).astype(int)
        df['hour'] = df['purchase_date'].dt.hour
    
    df['purchase_date'] = pd.to_datetime(df['purchase_date'])
    

    这一句完成了数据类型从object到datetime64的变化。之后
    .dt.day等可参考官网:
    在这里插入图片描述
    http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.day.html#pandas-series-dt-day

    3。关于时序量的做差等

    train['elapsed_time'] = (datetime.date(2018, 2, 1) - train['first_active_month'].dt.date).dt.days
    

    或者

    df_hist_trans_group['new_hist_purchase_date_diff'] = 
    (df_hist_trans_group['new_hist_purchase_date_max'] - 
    df_hist_trans_group['new_hist_purchase_date_min']).dt.days
    

    其实上面两种是一样的。
    在这里插入图片描述
    说明:

    import pandas as pd
    a  = pd.Series(['2017-1-2','2017-9-1'])
    

    在这里插入图片描述
    在这里插入图片描述
    一切尽在不言中~~我想从上面的截图你应该明白怎么回事了~

    展开全文
  • 【pandas】to_datetime函数简单使用

    千次阅读 2020-05-18 09:33:08
    pd.to_datetime('20220517', format='%Y%m%d') >>> Timestamp('2022-05-17 00:00:00') pd.to_datetime('05/17/2022', format='%m/%d/%Y') >>> Timestamp('2022-05-17 00:00:00')

    该函数将给定参数args转换为日期格式,需要传入参数format指定args的格式,注意format中年用Y表示,月和天用小写的md表示

    pd.to_datetime('20220517', format='%Y%m%d')
    >>> Timestamp('2022-05-17 00:00:00')
    
    pd.to_datetime('05/17/2022', format='%m/%d/%Y')
    >>> Timestamp('2022-05-17 00:00:00')
    

    两个日期可以直接相减得到相差的天数,并且相减的结果是一个Timedelta类型的数据

    date_1 = pd.to_datetime('05/17/2022', format='%m/%d/%Y')
    date_2 = pd.to_datetime('04/17/2022', format='%m/%d/%Y')
    print(date_1-date_2)
    >>> 30 days 00:00:00
    print(type(date_1-date_2))
    >>> <class 'pandas._libs.tslibs.timedeltas.Timedelta'>
    

    可以将相减后的结果与Timedelta类型进行比较,例如

    date_1 = pd.to_datetime('05/17/2022', format='%m/%d/%Y')
    date_2 = pd.to_datetime('04/17/2022', format='%m/%d/%Y')
    delta = date_1-date_2
    print('delta', delta)
    if delta > pd.Timedelta(days=15):
        print('greater than 15 days')
    else:
        print('smaller than 15 days')
    
    >>> delta 30 days 00:00:00
    	greater than 15 days
    
    展开全文
  • pandas.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',cache=True) ...

    pandas.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', cache=True)                                     [source]

    将参数转换为datetime。

    参数:arg : integer,float, string, datetime,

    list, tuple,1-d array(一维数组),Series

    0.18.1版中的新功能:或类似DataFrame/dict的

    errors : {'ignore','raise','coerce'},

    默认为'raise'

    如果为‘raise’,则无效的解析将引发异常

    如果为 ‘coerce’,则将无效解析设置为NaT

    如果为 ‘ignore’,则无效的解析将返回输入

    dayfirst : boolean,默认为False

    如果arg为str或类似列表,

    则指定日期解析顺序。

    如果为True,则首先解析日期,

    例如12/10/11解析为2012-11-10。

    警告:dayfirst = True并不严格,

    但更喜欢使用day first进行解析(

    这是一个已知的错误,基于dateutil的行为)。

    yearfirst : boolean,默认为False

    如果arg为str或类似列表,则指定日期解析顺序。

    如果True解析日期以年份为第一,

    则将10/11/12解析为2010-11-12。

    如果dayfirst和yearfirst均为True,

    则在yearfirst之后(与dateutil相同)。

    警告:yearfirst = True并不严格,

    但更喜欢使用year first进行解析

    (这是一个已知的错误,基于dateutil的行为)。

    版本0.16.1中的新功能。

    utc : boolean,默认None

    如果为True,则返回UTC DatetimeIndex

    (也转换任何支持tz的datetime.datetime对象)。

    box: boolean,默认为True

    如果True返回DatetimeIndex或类似Index的对象

    如果为False,则返回值的ndarray。

    从0.25.0版开始不推荐使用:

    分别使用或分别获取值或numpy.datetime64的ndarray。

    format : string,默认None

    strftime来解析时间,例如“%d /%m /%Y”,

    请注意,“%f”将一直解析到纳秒。

    有关选择的更多信息,

    请参见strftime文档:

    exact : boolean,默认为True

    如果为True,则需要完全匹配的格式。

    如果为False,则允许格式匹配目标字符串中的任何位置。

    unit : string,默认为“ns”

    arg的单位(D,s,ms,us,ns)表示单位,

    它是整数或浮点数。这将基于原点。

    例如,对于unit ='ms'和origin ='unix'(默认值),

    这将计算到unix纪元开始的毫秒数。

    infer_datetime_format: boolean,默认为False

    如果为True且未给出格式,

    请尝试推断日期时间字符串的格式,

    如果可以推断出日期格式,

    请切换到解析它们的更快方法。

    在某些情况下,这可以使解析速度提高约5-10倍。

    origin : scalar,默认为'unix'

    定义参考日期。自该参考日期以来,

    数值将被解析为单位数(由unit定义)。

    如果是“unix”(或POSIX)时间;

    原点设置为1970-01-01。

    如果为'julian',则单位必须为'D',

    并且原点设置为Julian Calendar的开头。

    Julian天数0被指定为

    从公元前4713年1月1日正午开始的那一天。

    如果时间戳可转换,

    则将原点设置为由原点标识的时间戳。

    0.20.0版中的新功能。

    cache : boolean,默认为True

    如果为True,

    则使用唯一的转换日期缓存来应用datetime转换。

    解析重复的日期字符串时,

    尤其是带有时区偏移的日期字符串时,

    可能会大大提高速度。

    0.23.0版中的新功能。

    在0.25.0版中进行了更改: -将默认值从False更改为True

    返回值:ret : 日期时间(如果解析成功)。

    返回类型取决于输入:

    list-like:DatetimeIndex

    Series:datetime64 dtype Series

    scalar:时间戳(Timestamp)

    如果无法返回指定的类型

    (例如,当输入的任何元素

    在Timestamp.min之前或Timestamp.max之后)

    ,则返回将具有datetime.datetime类型

    (或对应的array/Series)。

    例子

    从DataFrame的多个列中组合一个日期时间。键可以是常见的缩写,例如['year','month','day','minute','second','ms','us','ns'])或相同的复数形式>>> df = pd.DataFrame({'year': [2015, 2016],

    ... 'month': [2, 3],

    ... 'day': [4, 5]})

    >>> pd.to_datetime(df)

    0 2015-02-04

    1 2016-03-05

    dtype: datetime64[ns]

    如果日期不符合时间戳限制,则传递errors ='ignore'将返回原始输入,而不引发任何异常。

    如果将error ='coerce'传递给NaT,则除了将非日期(或不可解析的日期)强制为NaT外,还将对NaT强制执行越界日期。>>> pd.to_datetime('13000101', format='%Y%m%d', errors='ignore')

    datetime.datetime(1300, 1, 1, 0, 0)

    >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce')

    NaT

    传递infer_datetime_format = True通常可以加快解析速度,如果解析不是完全采用ISO8601格式,而是采用常规格式>>> s = pd.Series(['3/11/2000', '3/12/2000', '3/13/2000'] * 1000)

    >>> s.head()

    0 3/11/2000

    1 3/12/2000

    2 3/13/2000

    3 3/11/2000

    4 3/12/2000

    dtype: object>>> %timeit pd.to_datetime(s,infer_datetime_format=True) # doctest: +SKIP

    100 loops, best of 3: 10.4 ms per loop>>> %timeit pd.to_datetime(s,infer_datetime_format=False) # doctest: +SKIP

    1 loop, best of 3: 471 ms per loop

    使用Unix纪元时间>>> pd.to_datetime(1490195805, unit='s')

    Timestamp('2017-03-22 15:16:45')

    >>> pd.to_datetime(1490195805433502912, unit='ns')

    Timestamp('2017-03-22 15:16:45.433502912')

    警告: 对于float arg,可能会发生精确舍入。为防止意外行为,请使用固定宽度的精确类型。

    使用非unix纪元原点>>> 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)

    展开全文
  • 可以得到to_datetime函数的相关作用以及参数的使用,部分截图如下: 来查看python中强大的pandas中的to_datetime() 函数。 很明显其作用为 Convert argument to datetime.也就是该函数可以将字符型的时间数据转换为...

    python使用的是 jupyter notebook
    话不多说,直接说说主要内容吧!

    一、函数简介

    我们可以通过输入

     import pandas as pd
     help(pd.to_datetime)

    可以得到to_datetime函数的相关作用以及参数的使用,部分截图如下:
    to_datetime的参数
    来查看python中强大的pandas中的to_datetime() 函数。
    很明显其作用为 Convert argument to datetime.也就是该函数可以将字符型的时间数据转换为时间型数据

    不过实际上一般只使用to_datetime中的两个参数,即 to_datetime(arg,format)
    其中 , arg 的参数说明如下:
    arg的参数说明
    对于一般读入的csv或者excel文件而言,是指字符型时间的格式列
    format 的参数如下:format的参数说明
    format 是指时间格式
    二、举个栗子
    假设你现在拥有字符型的时间日期:
    字符型时间数据

    可以使用data的dtypes属性来查看其类型
    现在需要对数据进行处理,所以你需要将字符型的时间日期转换为时间型的数据,对于这种简单的就可以直接使用to_datetime函数

    data["new_date"]=pd.to_datetime(data['date'])
    data.head()
    data.dtypes

    然后你会发现
    最后结果
    第一次写这个,感觉还是挺麻烦的!关于to_datetime的format以及后面其他的时间处理问题,之后再写吧!实在扛不住了,写这么点我居然写了一个多小时,也可能是因为刚开始不熟悉。。。。。但是我的作业还没写完。。。。。。等今晚把作业写完了再写吧!(如果有错误请纠正)

    展开全文
  • 一、pandas中to_datetime()函数 可以将指定数据转换为相应格式的时间类型数据 pandas.to_datetime(arg,format=None, exact=True, unit=None) 参数 含义 arg 需要转换类型的数据 format 需要输出为时间...
  • 点评:相对而言,parse_dates = [...pd.to_datetime( arg, errors='raise', dayfirst=False, yearfirst=False, utc=None, format=None, exact=True, unit=None, infer_datetime_format=False, origin='uni
  • Using pandas to_datetime with timestamps (遇到在pandas里面时间戳转时间的问题,把...主要注意to_datetime函数里面的单位unit默认是毫秒ms,而非秒,而一般的10位时间戳的单位是秒,因此需要加上这个参数。 ...
  • mySQL中 实现Oracle 的to_char函数,应该可以实现80%的兼容REPLACE函数是区分大小的DROP FUNCTION IF EXISTS `to_char`;CREATE DEFINER = `root`@`localhost` FUNCTION `to_char`(`fdate` datetime,`format` varchar...
  • 最近发现pd.to_datetime函数可以自动推断日期格式,而且不同格式的日期时间可以同批次处理。如下: In [5]: df Out[5]: 0 1 0 2019-1-3 19:00:23 1 1 2019/1/2 19:00:22 2 2 2019-1-1 3 3 2019-2 4 4 2019-1-2 19:...
  • 这里为大家介绍两个我经常用到的用来选取某一时间段数据的函数:datetime( )和pd.to_datetime( )。(一)datetime( )(1)获取指定的时间和日期。datetime(%Y,%m,%d,%H,%M,%S)datetime共有6个参数,分别代表的是年月日...
  • 这里为大家介绍两个我经常用到的用来选取某一时间段数据的函数:datetime( )和pd.to_datetime( )。(一)datetime( )(1)获取指定的时间和日期。datetime(%Y,%m,%d,%H,%M,%S)datetime共有6个参数,分别代表的是年月日...
  • python的时间转换datetime和pd.to_datetime

    万次阅读 多人点赞 2017-09-24 11:38:44
    这里为大家介绍两个我经常用到的用来选取某一时间段数据的函数:datetime( )和pd.to_datetime( )。 (一)datetime( )  (1)获取指定的时间和日期。datetime(%Y,%m,%d,%H,%M,%S)  datetime共有6个参数,分别...
  • SQL博大精深TO_DAYS函数 返回一个天数! 啊哈?什么天数? 从年份0开始的天数比如:[sql]mysql> SELECT TO_DAYS(‘1997-10-07′);结果 729669就是从0年开始 到1997年10月7号之间的天数理解这个之后那么一切就变得拉...
  • 我自己写了一个mysql中的函数,很简单的,用到oracle中to_char的部分功能,主要是时间转换那一块CREATE FUNCTION TO_CHAR(input datetime, style varchar(20))RETURNS varchar(100);BEGINDECLARE chars_str varchar...
  • pandas.to_datetime

    千次阅读 2017-10-26 16:39:47
    函数功能 将字符串形式的日期转化为日期格式eg:20160102 ->...label_data['date_received']=pd.to_datetime(train_data['date_received']) #weekday表示本周的第几天0-6# label_data['week'] =
  • 有时,我们需要对日期进行简单的运算,这就要使用到了...其中使用pd.to_datetime可以统一将time.strftime("%Y/%m/%d")生成的日期转换成日期格式的数据。time.strftime("%Y/%m/%d")生成的日期为字符串格式。 一、计...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 664
精华内容 265
关键字:

to_datetime函数