2017-06-25 2 views
2

Comment puis-je une série comme celle-ci:Durée de secondes dans Pandas

2016-11-09 00:07:00 0 days 00:00:15.000000000 
2016-11-09 00:07:15 0 days 00:20:14.000000000 
2016-11-09 00:07:30 0 days 10:00:15.000000000 

dans des valeurs entières comme ceci:

2016-11-09 00:07:00 15 
2016-11-09 00:07:15 1214 // 20*60+14 
2016-11-09 00:07:30 36015 // 10*60*60+15 
+0

i essayé ceci:. Auswahl [ 'Delta'] = auswahl [ 'Delta'] de dt.total_seconds() mais obtenez ceci: Ne peut utiliser accesseur .dt avec datetimelike valeurs – kolja

+0

En effet, vos valeurs sont probablement des chaînes et doivent être converties en timedeltas avant de pouvoir utiliser l'accesseur 'dt'. Vous verrez que ma réponse inclut cette solution. 'pd.to_timedelta (s) .dt.total_seconds()' – piRSquared

Répondre

3

Ce sont TimeDeltas. Vous devriez être en mesure d'utiliser la méthode total_seconds. Cependant, vous devez accéder à cette méthode via l'accesseur datetimedt. En supposant que votre série est nommé s

s.dt.total_seconds() 

2016-11-09 00:07:00  15.0 
2016-11-09 00:07:15  1214.0 
2016-11-09 00:07:30 36015.0 
dtype: float64 

Hower, si par hasard ce sont des chaînes. Il pourrait être préférable de ne pas utiliser pd.to_timedelta

pd.to_timedelta(s).dt.total_seconds() 

2016-11-09 00:07:00  15.0 
2016-11-09 00:07:15  1214.0 
2016-11-09 00:07:30 36015.0 
dtype: float64