2017-05-11 1 views
1

J'ai les colonnes suivantes dans un bloc de données. La deuxième colonne indique le nombre moyen de jours entre les dates d'activité par compte.Python Days Delta: Supprime l'heure de sortie des données dans les données et convertit la colonne en valeur flottante

Le "nombre moyen d'activités Btw par jour" a actuellement un type d'objet.

enter image description here

est Ci-dessous le code que j'ai écrit pour créer la deuxième colonne:

df_act_8_date = pd.DataFrame(df_act_7_date.groupby("Account")["Avg No. of Days Btw Activities"].apply(lambda x: x.diff().mean())) 

Je voudrais que la deuxième colonne pour afficher uniquement un nombre qui représente les jours et être une valeur flottante. S'il vous plaît voir la "colonne souhaitée" pour ce que je veux produire.

Honnêtement, je n'ai aucune idée de la façon d'aborder ce problème. J'essayé de convertir la deuxième colonne à un flotteur comme une étape de démarrage, mais obtenu l'erreur suivante:

ValueError: could not convert string to float: '15 days 07:26:53.793103448' 

Toute aide est grandement appréciée!

Répondre

1

essayer cette approche:

df['new'] = pd.to_timedelta(df['Avg No. of Days Btw Activitie'], errors='coerce').days 

Démo:

In [160]: pd.to_timedelta(['99 days 12:00:05','AAA', '30 days 08:00:00.00000000'], 
          errors='coerce').days 
Out[160]: Float64Index([99.0, nan, 30.0], dtype='float64')