在熊猫中将对象序列转换为时间序列

Posted

技术标签:

【中文标题】在熊猫中将对象序列转换为时间序列【英文标题】:Convert object series to time series in pandas 【发布时间】:2018-07-08 23:30:11 【问题描述】:

我在分析数据框中包含时间列的数据时遇到问题(我从 Excel 文件中打开)。指定列的值如下:

05:29:04、05:36:52、05:43:20、05:50:39、05:57:54

他们假设表示“到达和离开”时间,但在 python 中,该列被识别为对象而不是时间序列。

我不确定我应该怎么做才能将列转换为时间序列 - 我尝试了几个函数,例如 to_datetimetimestamp 但不断收到错误,所以我不确定我是否完全理解如何转换列。

【问题讨论】:

【参考方案1】:

我认为您需要通过to_timedelta 将值转换为timedeltas:

df = pd.DataFrame('A':list('abcde'),
                   'B':[4,5,4,5,5],
                   'col':['05:29:04', '05:36:52', '05:43:20', '05:50:39', '05:57:54'])

print (df)
   A  B       col
0  a  4  05:29:04
1  b  5  05:36:52
2  c  4  05:43:20
3  d  5  05:50:39
4  e  5  05:57:54

df['col'] = pd.to_timedelta(df['col'])

print (df.dtypes)
A               object
B                int64
col    timedelta64[ns]
dtype: object

如果将其转换为日期时间,则默认添加years、montha 和days:

df['col'] = pd.to_datetime(df['col'], format='%H:%M:%S')
print (df)

   A  B                 col
0  a  4 1900-01-01 05:29:04
1  b  5 1900-01-01 05:36:52
2  c  4 1900-01-01 05:43:20
3  d  5 1900-01-01 05:50:39
4  e  5 1900-01-01 05:57:54

【讨论】:

以上是关于在熊猫中将对象序列转换为时间序列的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫数据框中将不同的日期时间格式转换为 MM/DD/YYYY 格式

如何在熊猫中将 if/else 转换为 np.where

在熊猫中将索引转换为日期时间

如何在熊猫中将列转换为一个日期时间列?

如何在熊猫中将索引转换为日期时间?

在熊猫中将数据类型从对象更改为字符串