错误 Python pandas:时间数据 '20160101-000000' 与格式

我已经搜索过,我发现的问题似乎并不涵盖我的情况。我使用来自https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior的指令遵循了来自https://gist.github.com/gjreda/7433f5f70299610d9b6b的代码并写入Jupyter Python 笔记本:


import numpy as np

import pandas as pd

from datetime import datetime

to_datetime = lambda d: datetime.strptime(d, '%YYYY%mm%dd-%HH%MM%SS')

pd1 = pd.read_csv(r'c:\am\shared-2\topandas.txt',sep=':',header=None, names  = ['a','b','c','d'], parse_dates=[1], converters={'a': to_datetime}, index_col = 'a')

#pd2 = pd1.to_datetime (pd1.)

pd1

我有错误


ValueError:时间数据“20160101-000000”与格式“%YYYY%mm%dd-%HH%MM%SS”不匹配


我正在研究表达,看不出我在哪里犯了错误。


完整错误如下:


ValueError Traceback (last last call last) in 1 from datetime import datetime 2 to_datetime = lambda d: datetime.strptime(d, '%YYYY%mm%dd-%HH%MM%SS') ----> 3 pd1 = pd.read_csv(r'c:\am\shared-2\topandas.txt',sep=':',header=None, names = ['a','b','c','d'], parse_dates=[1], converters={'a': to_datetime}) 4 #pd2 = pd1.to_datetime (pd1.) 5 pd1


C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer,sep,delimiter,header,names,index_col,usecols,squeeze,prefix,mangle_dupe_cols,dtype,engine,converters,true_values ,false_values,skipinitialspace,skirows,skipfooter,nrows,na_values,keep_default_na,na_filter,详细,skip_blank_lines,parse_dates,infer_datetime_format,keep_date_col,date_parser,dayfirst,迭代器,块大小,压缩,千位,十进制,lineterminator,quotechar,引用,双引号,escapechar , 注释, 编码, 方言, tupleize_cols, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision) 700 skip_blank_lines=skip_blank_lines) 701 --> 702 return _read(filepath_or_buffer,kwds) 703 704 parser_f。名字=名字


C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds) 433 434 try: --> 435 data = parser.read(nrows) 436 最后:437 parser.close ()

富国沪深
浏览 129回答 2
2回答

www说

你的错误是%Y匹配一个 4 位数的年份 - 所以通过给%YYYY你实际上匹配“ 4 位数的年份,后跟三个 Y ”。这也适用于其他人。请改用以下格式字符串:%Y%m%d-%H%M%S

三国纷争

这里有必要将格式更改为只使用一个字母,还要检查http://strftime.org/:to_datetime = lambda d: datetime.strptime(d, '%Y%m%d-%H%M%S')另一个类似的解决方案:to_datetime = lambda d: pd.to_datetime(d, format='%Y%m%d-%H%M%S')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python