首页 > 解决方案 > 熊猫日期错误

问题描述

我正在尝试读取具有 Date 列的 csv 文件。日期存储为 8/27/1962、9/12/1959 和 7/15/1965。当我使用 to_datetime 函数时,日期被转换为 2062 年 8 月 27 日、2059 年 9 月 12 日和 2065 年 7 月 15 日。我不确定为什么会这样。是因为年份变了还是什么?

例子:

planets = pd.read_csv('Planets.csv',usecols = ['FirstVisited'])
0    3/29/74
1    8/27/62
2        NaN
3    9/12/59
4    7/15/65
5    12/4/73
6     9/1/79
Name: FirstVisited, dtype: object

pd.to_datetime(planets.FirstVisited)
0   1974-03-29
1   2062-08-27
2          NaT
3   2059-09-12
4   2065-07-15
5   1973-12-04
6   1979-09-01

检查索引 1,3 和 4

标签: pythonpython-3.xpandasstring-to-datetime

解决方案


实际上,这与您的代码无关!这是编程语言(基本上是 C)中的“时间起源”。C 的 time.h 头文件中时间的来源是“1970 January 1”。这就是为什么在那之前的日期你会得到错误的结果。我建议您手动更正这些时间……例如:

import pandas
x, y= pandas.readcsv('Planets.csv'), []
for i in x.FirstVisited:
    i= i.split('/')
    i[0], i[1], i[2]= '19'+i[2], i[0], i[1]
    y.append('-'.join(i))
print(y)

推荐阅读