在阅读时解析日期时间&csv'文件与熊猫

时间:2016-08-09 11:38:15

标签: python date csv pandas

我正在尝试在从cvs文件中读取数据时解析日期。我使用的命令是

df  = pd.read_csv('/Users/n....', names=names, parse_dates=['date'])​ ) 

它正在处理我的文件。 但我有几个数据集,其日期格式各不相同。我的意思是它的日期格式与(09/20/15 09:59​ )类似,而其他行中的另一种格式与同一文件中的( 2015-09-20 10:22:01.013​ )类似。而我上面写的命令并不适用于这些文件。它在我删除时工作(parse_dates = [' date']),但那时我不能将日期列用作datetime格式,它将该列读为整数。我很高兴有人能回答这个问题!

2 个答案:

答案 0 :(得分:3)

Pandas read_csv接受date_parser参数,您可以定义自己的日期解析功能。例如,在您的情况下,您可以使用两种不同的日期时间格式:

import datetime

def date_parser(d):
    try:
        d = datetime.datetime.strptime("format 1")
    except ValueError:
        try:
            d = datetime.datetime.strptime("format 2")
        except:
            # both formats not match, do something about it
    return d

df = pd.read_csv('/Users/n....', 
                 names=names, 
                 parse_dates=['date1', 'date2']),
                 date_parser=date_parser) 

然后,您可以在这些列中以不同格式解析这些日期。

答案 1 :(得分:2)

像这样:

df = pd.read_csv(file, names=names)
df['date'] = pd.to_datetime(df['date'])