简体   繁体   中英

Convert Dataframe column to time format in python

I have a dataframe column which looks like this :

在此处输入图片说明

It reads M:S.MS . How can I convert it into a M:S:MS timeformat so I can plot it as a time series graph?

If I plot it as it is, python throws an Invalid literal for float() error.

Note : This dataframe contains one hour worth of data. 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

It is possible convert to 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

Or to 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

EDIT:

For custom date use:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM