pandas 从 csv 中以 yy-mm-dd 格式读取日期

pandas reading dates from csv in yy-mm-dd format

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

是否可以选择以正确格式读取 pandas 中 2000 年之前日期的日期。

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