57 pandas 时间序列-to_datetime将对象转换为时间戳(tcy)
时间:2019-01-19
本文章向大家介绍57 pandas 时间序列-to_datetime将对象转换为时间戳(tcy),主要包括57 pandas 时间序列-to_datetime将对象转换为时间戳(tcy)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
pd.to_datetime()2019/1/19
1.1函数
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',cache=False)#转datetime
应用:要转换Series类似日期的对象或类似列表的对象,例如字符串,纪元或混合
返回:DatetimeIndex,datetime64系列,标量时间戳,本身
1.2参数:
arg:int,float,str,datetime,list,tuple,1-d array,Series或像DataFrame/dict
# 要求:year,month,day可选:hour,minute,second,millisecond,microsecond,nanosecond
errors ='raise': {'ignore','raise','coerce'}#引发异常设置为NaT//返回输入
dayfirst=False
# 参数为False,arg=str或[str]请指定日期解析顺序
# 参数为True先解析日期,例如10/11/12被解析为2012年11月10日
yearfirst=False
# 参数为False,arg=str或[str]请指定日期解析顺序
# 参数为True先解析年份的日期,例如10/11/12被解析为2010年-11月-12日
utc=None:bool返回UTC DatetimeIndex;如为True感知tz
box=True#True返回DatetimeIndex/False返回ndarray
format=None:str#要解析时间格式,如“%d /%m /%Y”,“%f”将解析到纳秒
exact=True#为True精确匹配/为False允许格式匹配目标字符串中的任何位置
unit='ns':str#arg整数或浮点数单位(D,s,ms,us,ns)
# 例如unit ='ms',origin ='unix'计算unix纪元开始的毫秒数。
infer_datetime_format=False#为True且无format尝试推断格式;速度慢
origin='unix'或时间点#定义参考日期。数值被解析为数字自参考日期以来的单位
# - 'unix'(或POSIX)时间;原点设定为1970-01-01
# - 'julian'日历则单位必须为'D',并且原点设置为'j'#朱利安日数0被分配到开始的那一天公元前4713年1月1日中午。
cache=False#为True使用缓存;解析重复日期时可能会产生明显的加速,尤其是具有时区偏移的字符串。
实例1:
# 实例1:从多个DataFrame列组装日期时间
df = pd.DataFrame({'year': [2018, 2019],'month': [2, 3], 'day': [4, 5],'hour': [2, 3]})
pd.to_datetime(df)
'''
0 2018-02-04 02:00:00
1 2019-03-05 03:00:00
dtype: datetime64[ns]
'''
实例2:
# 实例2:只传递需要组装的列
pd.to_datetime(df[['year', 'month', 'day']])
'''''''''
0 2018-02-04
1 2019-03-05
dtype: datetime64[ns]
'''
实例3:
# 实例3:errors
pd.to_datetime(['2019/07/31', 'asd'], errors='raise') #错误
pd.to_datetime(['2019/07/31', 'asd'], errors='ignore') #返回原始输入
#array(['2019/07/31', 'asd'], dtype=object)
pd.to_datetime('13000101', format='%Y%m%d', errors='ignore')
# datetime.datetime(1300, 1, 1, 0, 0)
pd.to_datetime(['2019/07/31', 'asd'], errors='coerce') #返回NaT
#DatetimeIndex(['2019-07-31', 'NaT'], dtype='datetime64[ns]', freq=None)
pd.to_datetime('13000101', format='%Y%m%d', errors='coerce')# NaT
实例4:
# 实例4.1:unit-纪元时间戳
pd.to_datetime([1549720105, 1549730105], unit='s')
#DatetimeIndex(['2019-02-09 13:48:25', '2019-02-09 16:35:05'], dtype='datetime64[ns]', freq=None)
pd.to_datetime([1549720105000, 1549730105000], unit='ms')#会出现float舍入问题
#DatetimeIndex(['2019-02-09 13:48:25', '2019-02-09 16:35:05'], dtype='datetime64[ns]', freq=None)
# 实例4.2:实现精确精度的唯一方法是使用固定宽度类型(例如int64)
pd.to_datetime([1490195805.433, 1490195805.433502912], unit='s')#对于float arg,可能会发生精确舍入
#DatetimeIndex(['2017-03-22 15:16:45.433000088', '2017-03-22 15:16:45.433502913'], dtype='datetime64[ns]', freq=None)
pd.to_datetime(1490195805433502912, unit='ns')
#Timestamp('2017-03-22 15:16:45.433502912')
# 实例4.3:从时间戳到大纪元- Timestamp转换为'unix'时代:
# 减去时期(UTC时间1970年1月1日午夜),然后除以“单位”(1秒)
rng = pd.date_range('2019-1-17 15:51:05', periods=3, freq='D')
(rng - pd.Timestamp("1970-01-01")) // pd.Timedelta('1s')
# Int64Index([1547740265, 1547826665, 1547913065], dtype='int64')
实例5-使用非unix时代起源:
使用非unix时代起源
# 实例5.1:使用origin参数-替代起点1970-1-1
pd.to_datetime([1, 2, 3], unit='D', origin=pd.Timestamp('1960-01-01'))#使用1960-01-01作为开始日期
#DatetimeIndex(['1960-01-02', '1960-01-03', '1960-01-04'], dtype='datetime64[ns]', freq=None)
# 实例5.2:默认origin='unix';俗称'unix epoch'或POSIX时间1970-01-01 00:00:00
pd.to_datetime([1, 2, 3], unit='D')
#DatetimeIndex(['1970-01-02', '1970-01-03', '1970-01-04'], dtype='datetime64[ns]', freq=None)
实例6:infer_datetime_format = True通常可以加快解析速度:
s = pd.Series(['3/11/2000', '3/12/2000', '3/13/2000']*1000)
%timeit pd.to_datetime(s,infer_datetime_format=True)#不是ISO8601格式,而是常规格式
# 100 loops, best of 3: 10.4 ms per loop
%timeit pd.to_datetime(s,infer_datetime_format=False)
# 1 loop, best of 3: 471 ms per loop
- jdk源码分析红黑树——插入篇1.插入root2.父黑3.父红4.父红,叔红5.1父红,叔黑,外侧子孙5.2父红,叔黑,内侧子孙
- WIFI环境下Android手机和电脑通信
- 破解之美:利用ECB加密缺陷突破cookie加密
- 让Python猜猜你是否能约会成功
- python学习笔记之初识Python
- 从APK解密到批量获取他人信息
- React native和原生之间的通信
- 移动云存储服务平台Parse下的iOS安全分析
- 经典算法学习之回溯法
- 渗透测试系统BackBox Linux 4.1发布
- CMS漏洞检测工具 - CMSmap
- 基因组分析中多物种同源基因的鉴定和筛选
- SpringMVC类型转换器、属性编辑器PropertiesEditor源码分析CustomDateEditor源码分析TypeConverterDelegate源码分析
- Intellij IDEA 插件开发之自建插件仓库
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python+Excel+Word一秒制作百份合同
- SQL 订单揽收统计
- LeetCode11|搜索二维矩阵
- LeetCode14|合并排序的数组
- LeetCode12|两个数组的交集
- LeetCode10|只出现一次的数字II
- LeetCode15|有序数组中出现次数超过25%的元素
- 小米5(gemini:双子座)刷机
- Cygwin本地安装版
- arm-gcc各版本区别
- LeetCode13|最小k个数
- 通过USB连接方式共享安卓的网络连接
- Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现
- 在线教育平台开发过程中,购物功能是如何实现的?
- Java笔记(0)