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

标签 python string datetime pandas dataframe

我有一个 DataFrame 列,其中值的字符串类型为“2016 年 6 月 6 日,6”,我想将其转换为“YYYY-MM-DD HH:MM”格式的 DataTime。

当尝试通过仅获取 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

如有任何建议,我们将不胜感激。

最佳答案

我认为您需要将参数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]

关于python - 将字符串列转换为日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37693677/

相关文章:

sql - 连接+时间差

Python 日期时间解析时区(RFC3339)

mysql - 从 mySQL 中选择 CURDATE()

python - Pandas MultiIndex DataFrame.rolling offset

python - Python 中的自定义排序复杂字符串

java - 读取 ArrayList 的一部分 n 行?

java - 有条件地禁用 jButton

python - 删除列值与 Pandas Dataframe 列值匹配的 SQL 表行

python - 解决值错误: cannot reindex from a duplicate axis when exploding multiple columns with different lenghts

python - Pandas :如何分组并计算给定列中的唯一性?