将数据集中的列类型转换为python中具有特定格式的datetime类型时出错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

将数据集中的列类型转换为python中具有特定格式的datetime类型时出错

2019-01-23 14:35:34 2398 1

我有一个数据集,我想更改名为“Last Updated”的列的格式。

DB['Last Updated'].head()

0 January 7, 2018
1 January 15, 2018
2 August 1, 2018
3 June 8, 2018
4 June 20, 2018
Name: Last Updated, dtype: object
我想制作像7/1/2018这样的格式,所以我在python中编写了以下内容。

DB['Last Updated'] = pd.to_datetime(DB['Last Updated'],format= '%d/%m/%Y')
但是出现此错误:

TypeError Traceback (most recent call last) ~/anaconda3/lib/python3.6/site-packages/pandas/core/tools/datetimes.py in _convert_listlike(arg, box, format, name, tz)
302 try:
--> 303 values, tz = tslib.datetime_to_datetime64(arg)
304 return DatetimeIndex._simple_new(values, name=name, tz=tz)

pandas/_libs/tslib.pyx in pandas._libs.tslib.datetime_to_datetime64()

TypeError: Unrecognized value type:

During handling of the above exception, another exception occurred:

ValueError Traceback (most recent call last)
in ()
----> 1 DB['Last Updated'] = pd.to_datetime(DB['Last Updated'],format= '%d/%m/%Y')

~/anaconda3/lib/python3.6/site-packages/pandas/core/tools/datetimes.py in to_datetime(arg, errors, dayfirst, yearfirst, utc, box, format, exact, unit, infer_datetime_format, origin)
371 elif isinstance(arg, ABCSeries):
372 from pandas import Series
--> 373 values = _convert_listlike(arg._values, True, format)
374 result = Series(values, index=arg.index, name=arg.name)
375 elif isinstance(arg, (ABCDataFrame, MutableMapping)):

~/anaconda3/lib/python3.6/site-packages/pandas/core/tools/datetimes.py in _convert_listlike(arg, box, format, name, tz)
304 return DatetimeIndex._simple_new(values, name=name, tz=tz)
305 except (ValueError, TypeError):
--> 306 raise e
307
308 if arg is None:

~/anaconda3/lib/python3.6/site-packages/pandas/core/tools/datetimes.py in _convert_listlike(arg, box, format, name, tz)
271 try:
272 result = array_strptime(arg, format, exact=exact,
--> 273 errors=errors)
274 except tslib.OutOfBoundsDatetime:
275 if errors == 'raise':

pandas/_libs/tslibs/strptime.pyx in pandas._libs.tslibs.strptime.array_strptime()

ValueError: time data 'January 7, 2018' does not match format '%d/%m/%Y' (match)
我该如何处理这个错误?

取消 提交回答
全部回答(1)
  • 一码平川MACHEL
    2019-07-17 23:26:38

    该format参数在pd.to_datetime(...)用于指定要从转换字符串的格式(未指定输出格式)。为了将日期字符串转换为datetime对象,然后转换为特定的输出格式,您可以执行以下操作:

    import pandas as pd

    data = [{'Last Updated': 'January 7, 2018'}, {'Last Updated': 'January 15, 2018'}]
    df = pd.DataFrame(data)

    df['Last Updated'] = pd.to_datetime(df['Last Updated'])
    df['Last Updated'] = df['Last Updated'].dt.strftime('%d/%m/%Y')

    print(df)

    OUTPUT

    Last Updated

    0 07/01/2018

    1 15/01/2018

    0 0
相关问答

1

回答

python中被 pd.to_datetime() 转换成什么?

2021-11-29 23:01:12 55浏览量 回答数 1

1

回答

python中None和NaN数据类型的差别是什么?

2021-11-29 23:07:29 80浏览量 回答数 1

1

回答

python中集合和什么可以相互转换呢?

2021-11-04 20:23:01 216浏览量 回答数 1

1

回答

python的数据类型转换中oct(x)表示什么啊?

2021-10-31 17:19:45 183浏览量 回答数 1

1

回答

Python中,-0x19323L属于什么数值类型?

2021-10-30 22:49:10 207浏览量 回答数 1

1

回答

Python中的类型转换是什么?

2021-11-01 00:23:28 79浏览量 回答数 1

1

回答

求大神指教!!!python dataframe apply 函数报错 ?报错

2020-06-23 16:03:00 262浏览量 回答数 1

1

回答

如何将时间转换为DataFrame Python中的相应插槽

2020-03-24 14:26:02 229浏览量 回答数 1

1

回答

将Python代码转换为Django框架

2020-02-22 17:52:29 350浏览量 回答数 1

1

回答

使用logmodel.fit(X,y)时,Python sklearn库错误“无效类型提升”

2019-12-30 09:56:23 1571浏览量 回答数 1
47
文章
723
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载