Python 熊猫的日期解析

Python 熊猫的日期解析,python,pandas,Python,Pandas,所以我需要读取一个包含日期和数值的csv文件,格式如下:2017-01-01 00:00:00,-350.7866656 这是我的密码: def parser(x): return datetime.strptime(x, '%Y-%m-%d %H:%M:%S') df = rea

所以我需要读取一个包含日期和数值的csv文件,格式如下:
2017-01-01 00:00:00,-350.7866656

这是我的密码:

def parser(x):                                                                                                         
    return datetime.strptime(x, '%Y-%m-%d %H:%M:%S')
df = read_csv('filename', header=None, parse_dates=[0], index_col=0, 
squeeze=True, date_parser=parser)

print(df.head())
我得到的是一个错误:
ValueError:未转换的数据仍然存在:,-350.7866656

据我所知,该程序将字符串视为一列而不是两列,并尝试解析整个字符串,而不是带有日期的第一列。如何修复此问题,使其将csv文件读入两列?

在我看来,问题是您可能有一些错误的日期值,无法用单个
datetime
格式解析。相反,将
try except
语句添加到
解析器
函数:

import pandas as pd
import numpy as np
from datetime import datetime, time

temp=u"""2015-01-04 12:04:10,10
2018-01-10 18:40:12,20
-350.7866656,20"""

def parser(x): 
    try:                                                                                                        
        return datetime.strptime(x, '%Y-%m-%d %H:%M:%S')
    except ValueError:
        return np.nan

#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp),  header=None, parse_dates=[0], index_col=0, 
squeeze=True, date_parser=parser)

print (df)
0
2015-01-04 12:04:10    10
2018-01-10 18:40:12    20
NaT                    20
Name: 1, dtype: int64

print (df.index)
DatetimeIndex(['2015-01-04 12:04:10', '2018-01-10 18:40:12', 'NaT'], dtype='datetime64[ns]', name=0, freq=None)
我查阅了文件。已设置为
0
的参数
index\u col
正在将文件中的日期列设置为索引。在我看来,删除该参数将产生所需的结果,即在两列中读取CSV


干杯

谢谢你的回答。您的解决方案出现的问题是,它只是将所有内容都转换为NaT。您的代码似乎一切正常,我不明白出了什么问题。@John Doe csv是保密的吗?如果没有,你能在我的个人资料中将其发送到我的电子邮件吗?因为这似乎是一些数据相关的问题。