在熊猫中将对象序列转换为时间序列
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_datetime
或 timestamp
但不断收到错误,所以我不确定我是否完全理解如何转换列。
【问题讨论】:
【参考方案1】:我认为您需要通过to_timedelta
将值转换为timedelta
s:
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
如果将其转换为日期时间,则默认添加year
s、month
a 和day
s:
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
【讨论】:
以上是关于在熊猫中将对象序列转换为时间序列的主要内容,如果未能解决你的问题,请参考以下文章