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

作者:红泥小火炉儿 时间:2022-09-21 23:47:29 

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

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)

来源:https://blog.csdn.net/m0_46589710/article/details/105383299

标签:pandas,pd.to,datetime()
0
投稿

猜你喜欢

  • 解析mysql 5.5字符集问题

    2024-01-13 09:01:54
  • Python实现二维曲线拟合的方法

    2021-08-26 12:38:01
  • 简单讲解Go程序中使用MySQL的方法

    2024-01-24 00:02:56
  • SQL 提权 常用命令

    2024-01-23 03:21:45
  • Python实现npy/mat文件的保存与读取

    2023-07-22 08:49:48
  • Python中is和==的区别详解

    2022-08-22 10:53:09
  • python seaborn heatmap可视化相关性矩阵实例

    2022-02-08 13:12:30
  • django传值给模板, 再用JS接收并进行操作的实例

    2021-08-23 08:03:46
  • php通过pecl方式安装扩展的实例讲解

    2023-07-23 07:06:12
  • asp中获取当前月份距离以前某个时间的月份数

    2012-11-30 20:29:40
  • Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题

    2022-03-27 17:21:42
  • PHP的mysqli_stat()函数讲解

    2023-06-12 08:11:33
  • mysql数据库设置utf-8编码的方法步骤

    2024-01-19 05:30:56
  • NopCommerce架构分析之(五)Model绑定Action参数

    2024-06-05 09:26:43
  • 影响SQL Server性能的关键三个方面

    2009-02-13 16:59:00
  • 微信小程序常用的3种提示弹窗实现详解

    2024-04-18 09:43:39
  • Python直接赋值及深浅拷贝原理详解

    2021-11-23 02:24:18
  • 用Python画小女孩放风筝的示例

    2021-11-20 09:40:25
  • python性能测量工具cProfile使用解析

    2022-01-28 08:22:03
  • javascript 45种缓动效果(二)

    2009-09-19 18:53:00
  • asp之家 网络编程 m.aspxhome.com