Convert hh:mm:ss to minutes using python pandas

匿名 (未验证) 提交于 2019-12-03 02:01:02

问题:

I have a dataframe column, data['time taken'] ;

02:08:00 02:05:00 02:55:00 03:42:00 01:12:00 01:46:00 03:22:00 03:36:00 

How do I get the output in the form of minutes like below?

128 125 175 222 72 106 202 216 

回答1:

You could try to convert it to DatetimeIndex

In [58]: time = pd.DatetimeIndex(df['time taken'])  In [59]: time.hour * 60 + time.minute Out[59]: array([128, 125, 175, 222,  72, 106, 202, 216], dtype=int32) 


回答2:

Assuming this is a string column you can use the str.split method:

In [11]: df['time taken'].str.split(':') Out[11]: 0    [02, 08, 00] 1    [02, 05, 00] 2    [02, 55, 00] 3    [03, 42, 00] 4    [01, 12, 00] 5    [01, 46, 00] 6    [03, 22, 00] 7    [03, 36, 00] Name: time taken, dtype: object 

And then use apply:

In [12]: df['time taken'].str.split(':').apply(lambda x: int(x[0]) * 60 + int(x[1])) Out[12]: 0    128 1    125 2    175 3    222 4     72 5    106 6    202 7    216 Name: time taken, dtype: int64 


回答3:

A bit hacky as we don't directly support reading in timedeltas ATM

In [9]: df = read_csv(StringIO(data),header=None)  In [10]: df Out[10]:            0 0  02:08:00 1  02:05:00 2  02:55:00 3  03:42:00 4  01:12:00 5  01:46:00 6  03:22:00 7  03:36:00 Name: time, dtype: datetime64[ns]  In [13]: df['time'] = pd.to_datetime(df['time'])  In [18]: df['delta'] = df['time']-Timestamp('today')  In [19]: df Out[19]:                   time    delta 0 2013-07-30 02:08:00 02:08:00 1 2013-07-30 02:05:00 02:05:00 2 2013-07-30 02:55:00 02:55:00 3 2013-07-30 03:42:00 03:42:00 4 2013-07-30 01:12:00 01:12:00 5 2013-07-30 01:46:00 01:46:00 6 2013-07-30 03:22:00 03:22:00 7 2013-07-30 03:36:00 03:36:00  In [20]: df.dtypes Out[20]:  time      datetime64[ns] delta    timedelta64[ns] dtype: object  In [22]: df['delta'].apply(lambda x: x/np.timedelta64(1,'m')) Out[22]:  0    128 1    125 2    175 3    222 4     72 5    106 6    202 7    216 Name: delta, dtype: float64 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!