使用 pandas 读取“csv”文件时解析日期时间

dss*_*dss 3 python csv date pandas

我试图在 \xe2\x80\x8b 从 cvs 文件中读取数据时解析日期。我使用的命令是

\n\n
df  = pd.read_csv('/Users/n....', names=names, parse_dates=['date'])\xe2\x80\x8b ) \n
Run Code Online (Sandbox Code Playgroud)\n\n

它一般都在处理我的文件。\n但是我有几个数据集,其日期格式多种多样。我的意思是它的日期格式就像那样(09/20/15 09:59\xe2\x80\x8b ),而其他行中的另一种格式就像( 2015-09-20 10:22:01.013\xe2\x80\x8b )同一文件中的那样。我上面写的命令不适用于这些文件。当我删除 (parse_dates=['date'])\xe2\x80\x8b 时它正在工作,但是当时我不能使用 date 列作为datetime格式,它将该列读取为 integer 。我将不胜感激任何人都可以回答这个问题!

\n

Anz*_*zel 5

Pandasread_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) 
Run Code Online (Sandbox Code Playgroud)

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