This is my dataframe:
Parametres Valeurs Valeurs.1 Valeurs.2
0 Nombre de reboot 0 0 0
1 mode privé 1 1 1
2 mode public 0 0 0
3 Date de roulage 2019-01-05 2019-01-05 2019-01-05
4 Heures de roulage 00:07:07 00:01:01 00:03:03
5 Temps de trajet 00:05:05 00:00:00 00:01:01
6 première connex 00:01:01 00:01:01 00:01:01
7 Nombre de decon 0 0 1
8 Durée total 00:00:00 00:00:00 00:02:02
I need to convert the 4th, the 5th, the 6th, and the 8th row from string to datetimes (%H:%M:%S) then calculate the sum.
Is it possible? because during my search I only found how to convert columns into datetimes.
I believe you need seelct columns ant set to datetimes:
df1 = df.iloc[[3,4,5,8], 1:].apply(pd.to_datetime)
print (df1)
Valeurs Valeurs.1 Valeurs.2
3 2019-01-05 00:00:00 2019-01-05 00:00:00 2019-01-05 00:00:00
4 2019-11-26 00:07:07 2019-11-26 00:01:01 2019-11-26 00:03:03
5 2019-11-26 00:05:05 2019-11-26 00:00:00 2019-11-26 00:01:01
8 2019-11-26 00:00:00 2019-11-26 00:00:00 2019-11-26 00:02:02
But better should be convert one row to datetime and another to timedeltas:
df2 = df.iloc[[3], 1:].apply(pd.to_datetime)
print (df2)
Valeurs Valeurs.1 Valeurs.2
3 2019-01-05 2019-01-05 2019-01-05
df3 = df.iloc[[4,5,8], 1:].apply(pd.to_timedelta)
print (df3)
Valeurs Valeurs.1 Valeurs.2
4 00:07:07 00:01:01 00:03:03
5 00:05:05 00:00:00 00:01:01
8 00:00:00 00:00:00 00:02:02
Better solution is possible is reshape for same types of data per column:
df4 = df.set_index('Parametres').T
df4['Date de roulage'] = pd.to_datetime(df4['Date de roulage'])
cols1 = ['Heures de roulage','Temps de trajet','premiere connex','Duree total']
df4[cols1] = df4[cols1].apply(pd.to_timedelta)
cols2 = df4.columns.difference(cols1 + ['Date de roulage'])
df4[cols2] = df4[cols2].astype(int)
print (df4)
Parametres Nombre de reboot mode prive mode public Date de roulage \
Valeurs 0 1 0 2019-01-05
Valeurs.1 0 1 0 2019-01-05
Valeurs.2 0 1 0 2019-01-05
Parametres Heures de roulage Temps de trajet premiere connex Nombre de decon \
Valeurs 00:07:07 00:05:05 00:01:01 0
Valeurs.1 00:01:01 00:00:00 00:01:01 0
Valeurs.2 00:03:03 00:01:01 00:01:01 1
Parametres Duree total
Valeurs 00:00:00
Valeurs.1 00:00:00
Valeurs.2 00:02:02
print (df4.dtypes)
Nombre de reboot int32
mode prive int32
mode public int32
Date de roulage datetime64[ns]
Heures de roulage timedelta64[ns]
Temps de trajet timedelta64[ns]
premiere connex timedelta64[ns]
Nombre de decon int32
Duree total timedelta64[ns]
dtype: object