pandas datetime格式转换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas datetime格式转换相关的知识,希望对你有一定的参考价值。
我的数据集在日期列中具有以下格式的值:
date
[datetime.date(2017, 2, 17)]
[datetime.date(2017, 2, 17)]
[datetime.date(2017, 2, 17)]
[datetime.date(2017, 2, 17)]
[datetime.date(2017, 2, 17)]
[datetime.date(2017, 2, 17)]
[datetime.date(2017, 2, 17)]
[datetime.date(2017, 2, 17)]
[datetime.date(2017, 2, 17)]
[datetime.date(2017, 2, 17)]
[datetime.date(2017, 2, 17)]
[datetime.date(2017, 2, 17)]
我想将它们转换为datetime的数据类型,以便我无法对其进行时间序列分析。
我用以下方式写了:但它给了我价值错误
df_scores['date']=pd.to_datetime(df_scores['date'],format='[datetime.date("%Y, %m, %d")]')
答案
如果您的列是列表中的date
对象列,这应该足够了 -
df.date = pd.to_datetime(df_scores['date'].str[0], errors='coerce')
如果你有一列字符串,你可以使用str.findall
来提取日期工件,并使用str.join
以to_datetime
理解的格式加入它们。
i = df.date.astype(str)
.str.findall('d+')
.str.join('/')
df.date = pd.to_datetime(i, errors='coerce')
如果您有一列字符串列,而不是一列字符串,则需要astype(str)
。如果列中的数据格式错误,您可能还需要另一个参数errors='coerce'
。
df
date
0 2017-02-17
1 2017-02-17
2 2017-02-17
3 2017-02-17
4 2017-02-17
5 2017-02-17
6 2017-02-17
7 2017-02-17
8 2017-02-17
9 2017-02-17
10 2017-02-17
11 2017-02-17
另一答案
如果你from datetime import datetime
那么你应该指定这样的日期:[datetime(2017, 2, 17)]
这将导致<class 'pandas._libs.tslib.Timestamp'>
类型的条目,你可以使用.to_datetime()
转换为datetime
另一答案
这应该工作:
df_scores['date']=pd.to_datetime(df_scores['date'],format="[datetime.date(%Y, %m, %d)]")
以上是关于pandas datetime格式转换的主要内容,如果未能解决你的问题,请参考以下文章
使用 pandas.to_datetime 转换时指定日期格式
如何在 Pandas 数据框中将日期转换为 ISO-8601 DateTime 格式
将 float64 列转换为 datetime pandas 时出错
Pandas中to_datetime()转换时间序列函数一文详解