我收到了一些格式奇怪的日期,但我没办法把它们读成日期时间Pandas 的格式.

例如:736698.0,它应该是'2017-01-04T00:00:00.000000000'.所以,原始的格式似乎是自公元前1/1/1以来的天数(作为零年的第一天,但没有这样的一年,所以它是一年).

我试着使用pandas.to_datetime(736698.0, unit='D', origin=datetime.datetime(1/1/0))和其他组合,但我什么都没有得到.

推荐答案

使用numpy可以做到这一点,因为它支持'BC' years:

import numpy as np

>>> np.datetime64('000') + np.timedelta64(736698, 'D')
numpy.datetime64('2017-01-04')

示例:

import pandas as pd

df = pd.DataFrame({'Date': [736698.0]})

df['Date2'] = pd.to_timedelta(df['Date'], unit='D').to_numpy() + np.datetime64('000')

输出:

>>> df
       Date      Date2
0  736698.0 2017-01-04

Python-3.x相关问答推荐

如何匹配字母,数字,短划线,逗号,但不是如果没有数字和字母?

Python根据阈值对数字进行分组

如何在matplotlib中显示次要刻度标签

被多个\n拆分并保留

PYSMB中的进度条

将字符串转换为python日期时间时出错

错误:无法为 pyconcorde 构建轮子,这是安装基于 pyproject.toml 的项目所必需的

在Python中基于组/ID将两个数据帧进行映射,找出较接近的值

在特定条件下从 DataFrame 中提取特定组

从 https://www.niftytrader.in/stock-options-chart/sbin 提取 SBIN 股票最大痛苦值的 Python 代码不起作用 - 我错过了什么?

我正在使用 python 线程,当查询 mysql 时,代码似乎在运行并保持在无限循环中,没有返回任何错误

如何在pyspark的列中按连续1分组并保持具有特定大小的组

以编程方式映射 uniprot ID 时如何解决 400 客户端错误?

XPATH:使用 .find_elements_by_xpath 为未知数量的 xpath 输入值

Pygame 错误地渲染等距图像

段落中句子的索引

如何通过python打开文件

是否有与 Laravel 4 等效的 python?

Python 3中星型导入的函数形式是什么

使用 Python 3 读取 CSV 文件