将字符串列转换为日期时间格式

Posted

技术标签:

【中文标题】将字符串列转换为日期时间格式【英文标题】:Convert string column to DateTime format 【发布时间】:2016-10-08 04:49:21 【问题描述】:

我有一个 DataFrame 列,其中值是字符串类型 'June 6, 2016, 6',我想将其转换为 DataTime 为 'YYYY-MM-DD HH:MM' 格式。

当尝试仅通过 value 进行转换时,我可以将其转换为正确的格式。

import datetime
stringDate = "June 6, 2016, 11"
dateObject = datetime.datetime.strptime(stringDate, "%B %d, %Y, %H")
print dateObject

**Output : 2016-06-06 11:00:00**

但是当我尝试不同的选项在 python 数据框列上应用相同的转换时,我没有在转换中获得时间。

**Option1**
df['Date'] = df.Date.apply(lambda x: dt.datetime.strptime(x, "%B %d, %Y, %H").date())

**Option2**
df['Date'] = pd.to_datetime(df['Date'] = df.Date.apply(lambda x: dt.datetime.strptime(x, "%B %d, %Y, %H"))

输出:两个案例都得到了 2016-06-06

任何建议将不胜感激。

【问题讨论】:

【参考方案1】:

我认为您需要将参数format 添加到to_datetime

print (pd.to_datetime('June 6, 2016, 11', format='%B %d, %Y, %H'))
2016-06-06 11:00:00

它也适用于DataFrame

df = pd.DataFrame('Date':['June 6, 2016, 11', 'May 6, 2016, 11'])
print (df)
               Date
0  June 6, 2016, 11
1   May 6, 2016, 11

print (pd.to_datetime(df['Date'], format='%B %d, %Y, %H'))
0   2016-06-06 11:00:00
1   2016-05-06 11:00:00
Name: Date, dtype: datetime64[ns]

【讨论】:

`感谢您的回复。 如果我的回答有帮助,别忘了accept。您也可以投票 - 点击接受标记上方0 上方的小三角形。谢谢。

以上是关于将字符串列转换为日期时间格式的主要内容,如果未能解决你的问题,请参考以下文章

将日期时间列转换为字符串列

将带有日期和时间信息的字符串列转换为R [duplicate]中的datetime类型

使用 SQL 将字符串列转换为 mongodb 中的日期时间

使用SQL将字符串列转换为mongodb中的日期时间

SQL Server 无法使用有效字符串将字符串转换为日期时间

在 Pandas 中将字符串列转换为日期的有效方法(在 Python 中),但没有时间戳