0
votes

Convertir la chaîne en numéro de temps

J'ai un Dataframe comme ça. J'ai besoin de convertir la chaîne de Colume utilisée du temps à partir de la chaîne vers temps forte> ou numéro fort> pour résumer cette colonne.

T = df['Used time'].str.split(expand=True)
H = pd.to_numeric(T[0].str.replace('Hour',''))
M = round(pd.to_numeric(T[1].str.replace('Minute',''))/60, 1)
df['Used time'] = H + M


1 commentaires

Avant d'exécuter votre code, vous pouvez vérifier si la ligne contient heure , sinon vous pouvez ajouter 0hour


4 Réponses :


0
votes

Vous pouvez ajouter 0hour au début s'il manque une heure manquante. XXX


0 commentaires

0
votes

Qu'en est-il de l'utilisation de Regex pour trouver les chiffres code> hour code> S et Minute code> s chiffres, convertir toutes les minutes et somme code>?

import re

T = df['Used time']
h = re.findall("(\d+)Hour", T)
m = re.findall("(\d+)Minute", T)

df['Used time'] = ((int(h[0])*60 if h else 0) + (int(m[0]) if m else 0)) # in minutes


0 commentaires

0
votes

Essayez d'utiliser RPartition () Code> au lieu de Split.

T = df['Used time'].str.rpartition('Hour')

H = pd.to_numeric(T[0]).fillna(0)

M = (pd.to_numeric(T[2].str.strip('Minute'))/60).round(1)

df['Used time'] = H + M

print(df)

        Date                   User  Used time   Used
0   31-07-19          Member (GTV1)        1.0   5083
1   31-07-19        Member (NHOKON)        0.1    333
2   31-07-19            Member (GA)        0.7   3500
3   31-07-19       Member (VIET125)        2.5  12667
4   31-07-19       Member (LUAN123)        0.7   3333
5   31-07-19         Member (MMINH)        2.8  13917
6   31-07-19         Member (MMINH)        0.0      0
7   31-07-19         Member (MMINH)        2.2  10917
8   31-07-19         Member (MMINH)        0.9   4417
9   30-07-19       Member (KHANH00)        0.7   3417
10  30-07-19        Member (CHIEN2)        1.7   8333
11  30-07-19        Member (CHIEN2)        0.2    750
12  30-07-19                  Guest        0.0   2000
13  30-07-19      Member (DUYTQ111)        1.0   5250
14  29-07-19      Member (TRUNGTQ2)        0.7   3500
15  29-07-19                  Guest        1.2   7000
16  29-07-19         Member (MMINH)        2.2  11250


0 commentaires

0
votes

Vous pouvez utiliser un motif de regex pour extraire les deux heure code> et minute code>: xxx pré>

sortie: p>

df['Used time'] = new_df['Hour']*60 + new_df['Minute']


0 commentaires