大熊猫以yy-mm-dd格式从csv中读取日期

时间:2015-08-21 03:07:49

标签: python date csv pandas formats

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

是否有任何选项可以在2000年之前以正确的格式读取熊猫中的日期。

1 个答案:

答案 0 :(得分: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