0

我有一个日期格式为 dd-mmm-yy 的 csv 文件,我想以 yyyy-mm-dd 格式读取。解析日期选项有效,但它不能正确转换 2000 年之前的日期示例:实际日期是 1968 年 8 月 1 日。它显示为 01-Aug-68。Pandas date parase and correction=true 将日期读取为 2068 年 8 月 1 日。

对于 2000 年之前的日期,是否有任何选项可以以正确的格式读取 pandas 中的日期。

4

1 回答 1

2
from dateutil.relativedelta import relativedelta
import datetime

假设你有一个这样的 csv:

mydates
18-Aug-68
13-Jul-45
12-Sep-00
20-Jun-10
15-Jul-60

定义您的日期格式

d = lambda x: pd.datetime.strptime(x, '%d-%b-%y')

对他们施加约束

dateparse = lambda x: d(x) if d(x) < datetime.datetime.now() else d(x) - relativedelta(years=100) 

阅读你的 csv:

df = pd.read_csv("myfile.csv", parse_dates=['mydates'], date_parser=dateparse)

这是你的结果:

print df

     mydates
0 1968-08-18
1 1945-07-13
2 2000-09-12
3 2010-06-20
4 1960-07-15

于 2015-08-21T08:10:36.393 回答