我已经搜索过了,我发现的问题似乎没有涵盖我的案件。我遵循了https://gist.github.com/gjreda/7433f5f70299610d9b6b的代码,使用了来自https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior的指令,并用JuupyterPython记事本编写了以下代码:
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‘不匹配
我在观察表情,不知道我在哪里犯了错。
以下是完全错误:
从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,name= 'a','b','c','d',parse_dates=1,converters={'a':to_datetime}) 4# pd1 2= pd1.to_datetime (pd1.) 5 pd1 C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer、sep、定界符、标头、名称、index_col、usecols、挤压、前缀、mangle_dupe_cols、dtype、引擎、转换器、true_values、false_values、skipinitialspace、skiprows、skiprows、nrows、na_values、keep_default_na、na_filter、verbose、skip_blank_lines、parse_dates、infer_datetime_format、keep_date_col、date_parser、dayfirst、迭代器、chunksize,压缩,千,十进制,行终止符,商数,引用,双引号,转义符,注释,编码,方言,tupleize_cols,error_bad_lines,warn_bad_lines,delim_whitespace,low_memory,memory_map,float_precision) 701 -> 702返回_read(filepath_or_buffer,kwds) 703 704 parser_f。名称= name C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer,kwds) 433434 C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py中的read(self,nrows) 1137 def读(self,nrows=None):1138 nrows =_validate_integer(‘nrow’,nrow) -> 1139 ret =self._engine.read(Nrow) 1140 1141 #可以改变列/ col_dict C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py in read(self,nrows) 1993 def read(self,nrows=None):1994 try:-> 1995 data =self._reader.read(Nrow) 1996,但StopIteration: 1997如果self._first_chunk: 熊猫/_libs/parsers.pyx在pandas._libs.parsers.TextReader.read() pandas._libs.parsers.TextReader._read_low_memory()中的熊猫/_libs/parsers.pyx 熊猫/_libs/parsers.pyx在pandas._libs.parsers.TextReader._read_rows() pandas._libs.parsers.TextReader._convert_column_data()中的熊猫/_libs/parsers.pyx 熊猫/_libs/parsers.pyx在pandas._libs.parsers._apply_converter() 在(d) 1从日期时间导入日期时间-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# pd1 2= pd1.to_datetime (pd1.) 5 pd1 C:\ProgramData\Anaconda3\lib_strptime.py in _strptime_datetime( cls,data_string,_strptime_datetime) 575“”,根据输入字符串和576格式字符串返回类cls实例。“”-> 577 tt,分数,gmtoff_fraction = _strptime(data_string,format) 578 tzname,gmtoff = tt-2: 579 args = tt:6 +(分数,) 如果未找到C:\ProgramData\Anaconda3\lib_strptime.py in _strptime(data_string,format) 357 : 358 raise (“time data %r不匹配格式%r”% ValueError:时间数据“20160101-000000”与格式'%YYYY%mm%dd-%HH%MM%SS‘不匹配
发布于 2019-09-03 08:55:21
这里有必要更改格式,只使用一个字母,还可以检查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')发布于 2019-09-03 08:56:53
您的错误是%Y匹配一个4位数的年份,所以通过给出%YYYY,您实际上是在匹配“4位数的年份,然后是三个Y”。这也适用于其他人。
改用以下格式字符串:%Y%m%d-%H%M%S
https://stackoverflow.com/questions/57768238
复制相似问题