我有一个日期格式为 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 中的日期。
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
瞧