python - 熊猫日期错误
问题描述
我正在尝试读取具有 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
解决方案
实际上,这与您的代码无关!这是编程语言(基本上是 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)
推荐阅读
- ios - 如何使启动屏幕项目中心跨 ios 中的所有设备?
- java - Android使用类反射创建Toast?
- javascript - 为什么 promisify 不想要回调函数的参数?
- python - 为什么 Django inlineformset_factory 在文件上传时出现保存禁止错误?
- mongodb - 如何检查一个字段的字符串值是否是MongoDB中另一个字段的子字符串
- regex - 使用 AutoWikiBrowser 的 wiki 文章中的句子大小写
- jvm - (Javonet) 初始化 jvm 失败
- sql - SQL 查询:如何退回没有评论的产品
- android-recyclerview - 如何在 recyclerview 运行时更改所有项目的字体
- google-drive-api - 如何定期运行我的 colab 笔记本