【问题标题】:Cannot convert Time in the desired DateTime format无法以所需的 DateTime 格式转换时间
【发布时间】:2020-11-11 08:00:13
【问题描述】:

我是 pandas 的新手,我正在尝试将 Time 转换为 DateTime 格式。不幸的是,我得到了一个添加日期的时间,这不是我的意图。

我的数据框如下:

运行data['Time'] = pd.to_datetime(data['Time'], format = '%H:%M:%S') 后,我得到以下信息:

我做错了什么?

【问题讨论】:

  • DateTime 是一个二进制值,它没有格式。格式仅适用于将字符串解析为日期时间或格式化日期时间以进行显示。一个 DateTime 也总是有一个 date 组件,所以也许你应该使用 time 而不是 datetime
  • 您可以使用datetime.time 来提取已解析日期时间的时间部分
  • 你没有做错任何事,只是使用 pandas 的 datetime 数据类型,你不能只有日期或只有时间,它总是两者兼而有之。要仅获取时间,您可以使用data['Time'] = data['Time'].dt.time - 但请注意,这将为您留下一列数据类型“对象”,准确地说是 Python datetime.time 对象。或者,您可以将其保留为字符串。这取决于你想用它做什么。

标签: python pandas datetime ipython jupyter


【解决方案1】:

试试这个:

data = {'time':['05:05:30','06:04:23','03:40:45','12:05:30'], 'value':[2,3,5,7]}
data = pd.DataFrame(data)
data['TIME']=pd.to_datetime(data['time'],format='%H:%M:%S')

您会得到所需格式的 TIME:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype          
---  ------  --------------  -----          
 0   time    4 non-null      object         
 1   value   4 non-null      int64          
 2   TIME    4 non-null      timedelta64[ns]
dtypes: int64(1), object(1), timedelta64[ns](1)

【讨论】:

  • 为什么要解析为日期时间,直接转换回字符串?
  • @MrFuppes 真的。在我也有时间日期的情况下,我使用了以前的版本。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
  • 2011-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
相关资源
最近更新 更多