如何处理方法“ pandas.read_sql()”中时间戳的“越界”错误

时间:2019-03-29 15:47:20

标签: python pandas python-2.7

环境:

  • 熊猫0.20.3
  • python 2.7.13

目的和问题:

我正在使用方法 pandas.read_sql()从SQL检索表,该表也包含无效时间戳记的值(9999-12-30 23:00:00)。  但是,代码行引发错误 “越界时间戳:9999-12-30 23:00:00”

在这种情况下,如何处理时间戳?

背景:

我已经检查了pandas documentation的解决方案。但是,似乎没有相关的支持来配置时间戳解析器。

代码段:

import pyodbc as pyo
import pandas as pd
db_conn = pyo.connect('DSN=MySQL Connection 3;',autocommit=True)
tbl_df = pd.read_sql('select * from orders',db_conn)

我希望要么解析包含无效时间戳的单元格,要么避免默认情况下解析时间戳。

1 个答案:

答案 0 :(得分:0)

在0.20.3中,var data = [{ "team": "Colts", "players": [{ "name": "Andrew Luck", "position": "quarterback" }, { "name": "Quenton Nelson", "position": "guard" } ] }, { "team": "Patriots", "players": [{ "name": "Tom Brady", "position": "quarterback" }, { "name": "Shaq Mason", "position": "guard" } ] } ] let res = data.reduce((arr, { team, players }) => arr.concat(players.map(obj => ({ ...obj, team }))), []); // or let res1 = data.reduce((arr, { team, players }) => [...arr, ...players.map(obj => ({ ...obj, team }))], []); // or let res2 = data.reduce((arr, { team, players }) => (arr.push(...players.map(obj => ({ ...obj, team }))), arr), []); console.log(res, res1, res2)具有pandas.read_sql()

因此,大熊猫正在解析数据库中的日期将是意外的。

parse_dates : list or dict, default: None移至select * from orders并消除select col1, ..., datecol from orders。会发生什么?

datecol更改为datecol,以便您可以将数据作为非日期时间格式输入。从那里,您可以在Pandas中进行转换。