timedata与我的格式不匹配的错误
以下是数据示例:
import pandas as pd
data = pd.DataFrame({'TransactionTime': ['Sat Feb 02 12:50:00 IST 2019']})
这是我的代码:
data['TransactionTime'] = pd.to_datetime(data['TransactionTime'], format = '%a %b %d %H:%M:%S %Z %Y')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
e:\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py in _convert_listlike_datetimes(arg, format, name, tz, unit, errors, infer_datetime_format, dayfirst, yearfirst, exact)
431 try:
--> 432 values, tz = conversion.datetime_to_datetime64(arg)
433 return DatetimeIndex._simple_new(values, name=name, tz=tz)
pandas\_libs\tslibs\conversion.pyx in pandas._libs.tslibs.conversion.datetime_to_datetime64()
TypeError: Unrecognized value type: <class 'str'>
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
<ipython-input-139-ed51a35d7ed3> in <module>
----> 1 data['TransactionTime'] = pd.to_datetime(data['TransactionTime'], format = '%a %b %d %H:%M:%S %Z %Y')
e:\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py in to_datetime(arg, errors, dayfirst, yearfirst, utc, format, exact, unit, infer_datetime_format, origin, cache)
726 result = arg.map(cache_array)
727 else:
--> 728 values = convert_listlike(arg._values, format)
729 result = arg._constructor(values, index=arg.index, name=arg.name)
730 elif isinstance(arg, (ABCDataFrame, abc.MutableMapping)):
e:\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py in _convert_listlike_datetimes(arg, format, name, tz, unit, errors, infer_datetime_format, dayfirst, yearfirst, exact)
433 return DatetimeIndex._simple_new(values, name=name, tz=tz)
434 except (ValueError, TypeError):
--> 435 raise e
436
437 if result is None:
e:\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py in _convert_listlike_datetimes(arg, format, name, tz, unit, errors, infer_datetime_format, dayfirst, yearfirst, exact)
398 try:
399 result, timezones = array_strptime(
--> 400 arg, format, exact=exact, errors=errors
401 )
402 if "%Z" in format or "%z" in format:
pandas\_libs\tslibs\strptime.pyx in pandas._libs.tslibs.strptime.array_strptime()
ValueError: time data 'Sat Feb 02 12:50:00 IST 2019' does not match format '%a %b %d %H:%M:%S %Z %Y' (match)
该错误很可能源于
%Z
无法将IST
解析为正确时区的问题。有多个时区可以缩写为“IST”,因此无论如何它都是不明确的要将例如“IST”解析为特定时区,可以定义映射dict并将其提供给
dateutil
的parser.parse:如果您的数据有多个时区
DateTime
列,就可以删除其他列。df.drop(columns=['a', 'b', 'd', 'time', 'tz', 'Y', 'TTime'], inplace=True)
或者
format
参数中使用%Z
而不是%z
李>相关问题 更多 >
编程相关推荐