Strptime не делает то, что я (начиная с Python data-scientist) хочет этого сделать. У меня есть файл данных в формате следующим образом:datetime.strptime извлечение из dataframe: ошибка
STN,YYYYMMDD,HH,RH
210,20121001,1,0
210,20121001,2,0
210,20121001,3,0
210,20121001,4,0
...
Во второй колонке даты, в третий час (1-24) о наблюдении. Я хотел бы получить дату и время в формате datetime, чтобы объединить его с другими данными. Моя попытка:
import pandas as pd
from datetime import datetime
meteo = pd.read_csv("x:\\hourly.txt", parse_dates=[[1,2]])
# dataframe created with a column 'YYYYMMDD_HH'
meteo['datetime']=meteo['YYYYMMDD_HH'].apply(lambda x: datetime.strptime(x,'%Y%m%d %H'))
Python падает на последнюю строку с (для меня) очень загадочной ошибки:
Traceback (most recent call last):
File "X:\test.py", line 11, in <module>
meteo['datetime']=meteo['YYYYMMDD_HH'].apply(lambda x: datetime.strptime(x,'%Y%m%d %H'))
File "C:\Program Files\Anaconda3\lib\site-packages\pandas\core\series.py", line 1998, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
File "inference.pyx", line 1016, in pandas.lib.map_infer (pandas\lib.c:53184)
File "X:\test.py", line 11, in <lambda>
meteo['datetime']=meteo['YYYYMMDD_HH'].apply(lambda x: datetime.strptime(x,'%Y%m%d %H'))
File "C:\Program Files\Anaconda3\lib\_strptime.py", line 500, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "C:\Program Files\Anaconda3\lib\_strptime.py", line 340, in _strptime
data_string[found.end():])
ValueError: unconverted data remains: 4
Что я делаю неправильно? Спасибо за вашу помощь, Niels
Я бы попытался напечатать это значение и посмотреть, как он выглядит ... похоже, что у вас есть дополнительные буквы в шаблоне strptime или в вашей ценности ... вы можете, вероятно, принудительно ограничить размер x, чтобы решить проблему но я не уверен –