我有一个数据框列,看起来像这样:
读取M:S.MS
。如何将其转换为M:S:MS timeformat
,以便可以将其绘制为时间序列图?
如果按原样绘制,python会抛出Invalid literal for float()
错误。
注意
:此数据帧包含一小时的数据。 Values between 0:0.0 - 59:59.9
最佳答案
df = pd.DataFrame({'date':['00:02.0','00:05:0','00:08.1']})
print (df)
date
0 00:02.0
1 00:05:0
2 00:08.1
可以转换为
datetime
:df['date'] = pd.to_datetime(df['date'], format='%M:%S.%f')
print (df)
date
0 1900-01-01 00:00:02.000
1 1900-01-01 00:00:05.000
2 1900-01-01 00:00:08.100
或
timedelta
s:df['date'] = pd.to_timedelta(df['date'].radd('00:'))
print (df)
date
0 00:00:02
1 00:00:05
2 00:00:08.100000
编辑:
对于自定义日期,请使用:
date = '2015-01-04'
td = pd.to_datetime(date) - pd.to_datetime('1900-01-01')
df['date'] = pd.to_datetime(df['date'], format='%M:%S.%f') + td
print (df)
date
0 2015-01-04 00:00:02.000
1 2015-01-04 00:00:05.000
2 2015-01-04 00:00:08.100
关于python - 在python中将Dataframe列转换为时间格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47472878/