项目场景:

从oracle读取数据后转为dataframe形式,然后通过to_feather()存入ft文件
之后通过pandas.read_feather()从文件中读取dataframe数据
数据类型包括date,并且有超出时间戳的数据,比如0002-12-01 00:00:00或9999-10-01 00:00:00

问题描述:

存入feather文件时正常,从ft文件读取时出错,错误如下
大概意思是从timestamp[us]强制转换为timestamp[ns]将导致时间戳越界

pyarrow.lib.ArrowInvalid: Casting from timestamp[us] to timestamp[ns] would result in out of bounds timestamp

原因分析:

就是date类型的某些数据超过了时间戳的界限

解决方案:

在网上实在搜不到能一眼看懂的解决方案,直到在pandas官网上一直死磕Representing out-of-bounds spans部分,发现了可行的解决方案:
pandas.PeriodIndex
pandas官网上的示例如下

In [413]: span = pd.period_range('1215-01-01', '1381-01-01', freq='D')In [414]: span
Out[414]:
PeriodIndex(['1215-01-01', '1215-01-02', '1215-01-03', '1215-01-04','1215-01-05', '1215-01-06', '1215-01-07', '1215-01-08','1215-01-09', '1215-01-10',...'1380-12-23', '1380-12-24', '1380-12-25', '1380-12-26','1380-12-27', '1380-12-28', '1380-12-29', '1380-12-30','1380-12-31', '1381-01-01'],dtype='period[D]', length=60632, freq='D')

这不就是创了个区间的数据,实在没看懂怎么用PeriodIndex

之后直接去看PeriodIndex的用法,发现它的参数里有data,寻思直接调用PeriodIndex(data)把我dataframe里的越界数据调整一下?df['SWHZDJRQ'] = pd.PeriodIndex(df.SWHZDJRQ)(SWHZDJRQ是我dataframe里日期的列名)
然后报了个错?

ValueError: freq not specified and cannot be inferred

freq没指定,无法判断?那我就加上了freq参数,这个参数的介绍如下
fre:qstr or period object, optional. One of pandas period strings or corresponding objects.
大概是指定精度啥的,然后设为秒df['SWHZDJRQ'] = pd.PeriodIndex(df.SWHZDJRQ,freq='s')
一运行,诶,可以了,没啥错误了,也不报越界了,总算搞定了,折腾了一整天。

pyarrow.lib.ArrowInvalid: Casting from timestamp[us] to timestamp[ns] would result in out of bounds相关推荐

  1. pyarrow.lib.ArrowInvalid: ‘utf-32-le‘ codec can‘t decode

    使用pyspark的定义数据类型后,通过@pandas_udf的形式进行装饰的时候发现错误. 代码片段如下: schema = StructType([StructField("store_ ...

  2. mysql timestamp _mysql之TIMESTAMP(时间戳)用法详解

    一.TIMESTAMP的变体 TIMESTAMP时间戳在创建的时候可以有多重不同的特性,如: 1.在创建新记录和修改现有记录的时候都对这个数据列刷新: TIMESTAMP DEFAULT CURREN ...

  3. mysql timestamp 类型_MySQL timestamp类型

    在本教程中,您将了解MySQL TIMESTAMP和TIMESTAMP列的功能,如使用时间戳自动初始化和更新. MySQL TIMESTAMP简介 MySQL TIMESTAMP是一种保存日期和时间组 ...

  4. mysql timestamp格式化_mysql TIMESTAMP(时间戳)详解

    TIMESTAMP的变体 1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在创建新记录和修改现有记录的时候都对这个数 ...

  5. java timestamp 使用_Java Timestamp 类的使用(转)

    怎么把一个java.util.Date类型转化成java.sql.Timestamp类型呢? 很简单,我们可以这样声明   Timestamp  ts=new Timestamp(new Date() ...

  6. python timestamp转date_python timestamp和datetime之间转换详解

    做开发中难免时间类型之间的转换, 最近就发现前端js和后端django经常要用到这个转换, 其中jsDate.now()精确到毫秒,而Python中Datetime.datetime.now()是精确 ...

  7. mysql timestamp json_mysql中timestamp,datetime,int类型的区别与优劣

    mysql中timestamp,datetime,int类型的区别与优劣 int 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mys ...

  8. mysql timestamp 用法_MYSQL timestamp用法

    问题来源 在业务系统中,有时候想要知道用户最后一次活动距离现在的时间.记得mysql是有这样的字段的,可以直接在一条记录更新时,自动更新时间.上网查了查,找到了,是timestamp类型. 用法 在表 ...

  9. timestamp 6 mysql_Oracle timestamp(6)运用

    我们都知道date和timestamp都是对日期和时间的表示,只是两种类型的精确度不同,前者精确到秒,后者精确到小数秒(fractional_se 我们都知道date和timestamp都是对日期和时 ...

最新文章

  1. python第三方库中函数调用_Python学习笔记(2)——Python的函数、模块、包和库...
  2. 概说《TCP/IP详解 卷2》缘起
  3. python乘法口诀编程-中年大叔学编程-用Python打印个九九乘法表
  4. Oracle 检查点队列和HASH Bucket
  5. VTK:可视化之LegendScaleActor
  6. 基于VHDL语言的数字秒表实现
  7. globalmapper如何选取图像上的点_OpenCV 进阶应用,用编程手段搞定图像处理
  8. CSS3属性box-shadow使用教程
  9. Linux大实验 (图书管理系统)
  10. Android开发艺术探索知识回顾——第0章 书本内容介绍
  11. 计算机视觉项目实战-驾驶员疲劳检测
  12. Wheel Speed Sensor Bosch 文章
  13. 海康摄像头监控预览二开,萤石云对接说明
  14. 学习.NET好书推荐
  15. Angel 相关学习
  16. tomcat6\webapps\manager does not exist or is not a readable directory
  17. python3连接mysql获取ansible动态inventory脚本
  18. OSS上传txt文件乱码问题
  19. 几种你不知道的获取浙A牌照的方法
  20. B40 - 基于STM32单片机的电热蚊香蓝牙控制系统

热门文章

  1. matlab练习程序(图像马赛克)
  2. 兰州大学本科生发表31篇论文引关注!本人及校方回应
  3. c语言中 在对全部数组元素赋初值时,在对数组全部元素赋初值时,不可以省略行数,但能省略列数...
  4. 听见丨前谷歌无人车负责人联手大众和现代 开发自动驾驶 自动驾驶技术研发公司AImotive获3800万美元C轮融资
  5. ETDR 0A 电缆故障测试仪 手持便携式 电缆故障脉冲反射仪 可测30KM
  6. 耶鲁大学的心态 ,送给正在奋斗的人!
  7. 信息系统开发与管理【八】之 运行管理
  8. selenium+unittest自动化测试发送邮件
  9. java基础知识 API文档 字符串基本操作 正则表达式 Object
  10. 计算机专业简历的自我介绍,计算机专业简历自我介绍范文 .docx