Je voudrais créer une colonne dans une trame de données pandas qui est une représentation entière du nombre de jours dans une colonne timedelta. Est-il possible d'utiliser 'datetime.days' ou dois-je faire quelque chose de plus manuel?
colonne timedelta
7 jours, 23:29:00
colonne entière de jour
7
timedelta.days
?Réponses:
Utilisez l'
dt.days
attribut. Accédez à cet attribut via:Vous pouvez également obtenir les attributs
seconds
etmicroseconds
de la même manière.la source
Vous pouvez le faire, où
td
est votre série de timedeltas. La division convertit les deltas de la nanoseconde en deltas de jour et la conversion en int tombe en jours entiers.la source
/
pour entretd
etnp
?Objets timedelta ont des attributs d'instance en lecture seule
.days
,.seconds
et.microseconds
.la source
Si la question n'est pas seulement "comment accéder à une forme entière du timedelta?" mais "comment convertir la colonne timedelta dans le dataframe en un int?" la réponse pourrait être un peu différente. En plus de l'
.dt.days
accesseur, vous devez soitdf.astype
oupd.to_numeric
Chacune de ces options devrait aider:
ou
la source
timedelta64[ns]
. Si vos dates sont NaN, convertissez-les d'abord en datetime à l'aide de lato_datetime
fonction pandas , puis utilisez la deuxième option ci-dessus. Pour plus de détails, consultez to_datetime