这是我的数据框:
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
我需要将第4、5、6和8行从字符串转换为日期时间(%H:%M:%S),然后计算总和。
有可能吗?因为在搜索过程中,我仅发现了如何将列转换为日期时间。
答案 0 :(得分:1)
我相信您需要将蚂蚁列设置为日期时间:
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
但是最好将一行转换为日期时间,另一行转换为时间增量:
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
对于每列相同类型的数据,可以采用更好的解决方案:
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