0
votes

Réaffectation des valeurs de colonne Dataframe de Pandas

J'ai un CSV qui a un formatage de DateTime incorrect. J'ai travaillé sur la façon de convertir ces valeurs dans le format dont j'ai besoin, mais je dois maintenant réaffecter toutes les valeurs dans une colonne aux nouvelles valeurs converties.

Par exemple, j'espère qu'il y a quelque chose que je peux mettre dans la liste suivante pour que la boucle puisse insérer les valeurs dans le fichier de données à l'emplacement correct: p> xxx pré>

Comme toujours, votre aide est très appréciée! P>

une partie de la colonne en question: Partie du Dataframe en question: P>

Created Date    
2019-02-27 22:55:16    
2019-01-29 22:57:12    
2018-11-29 00:13:31    
2019-01-30 21:35:15
2018-12-20 21:14:45    
2018-11-01 16:20:15    
2019-04-11 16:38:07    
2019-01-24 00:23:17    
2018-12-21 19:30:10    
2018-12-19 22:33:04    
2018-11-07 19:54:19    
2019-05-10 21:15:00


4 commentaires

J'ai le sentiment que vous n'avez pas besoin de faire pour boucle ici. Quelque chose comme df.iloc [:, 1] = pd.to_datetime (df.iloc [:, 1]) fonctionnerait.


En outre, veuillez donner un exemple de jeu de données pour montrer ce que vous essayez de faire.


Juste comme df ['nom de colonne'] = pd.to_datetime (df [nom de colonne ']. lstrip (' 0 '), format ='% m /% d /% y ')


Vous ne voulez vraiment pas itérer sur des valeurs dans une colonne comme dans les pandas car il enlève une vectorisation. Il y a presque toujours une meilleure façon!


3 Réponses :


1
votes

Dans les termes simples, mais les plus instructifs, possibles: xxx

laisse pandas faire le travail pour vous.

ou, pour Une seule colonne: xxx

vous remplacerez bien astype (float) avec .date (). Strftime (' % m /% d /% y '). lstrip (' 0 ') .


0 commentaires

1
votes

Pour réaffecter une colonne, pas besoin d'une boucle. Quelque chose comme ça devrait fonctionner: xxx

new_column est une série de la longueur correspondante ou quelque chose qui peut être diffusé 1 à cette longueur. Vous pouvez trouver plus de détails dans Docs .

qui dit, si pd.timédiatamp peut déjà analyser vos données, il n'est pas nécessaire de "formater". Le formatage n'est pas associé à une instance d'horodatage. Vous pouvez choisir une mise en forme particulière lorsque vous convertissez en chaîne avec quelque chose comme df ["horodatage"]. DT.StrfTime ("% m /% d /% y") < p> D'autre part, si vous voulez modifier la précision de votre horodatage, vous pouvez faire quelque chose comme ceci: xxx

ici, toutes les informations de temps seront arrondies à un résolution des jours. La lettre entre le [ et ] est la résolution. Encore une fois, tout cela et plus est discuté dans le Docs .


1 La diffusion est un concept de numpy où vous pouvez fonctionner entre des tableaux de forme différents mais compatibles. Encore une fois, tout est couvert dans le Docs .


0 commentaires

0
votes

Merci à tous pour votre aide. Toutes les réponses ont été utiles, mais la réponse que j'ai fini par utiliser était la suivante:

import pandas as pd 

df[df.columns[0]] = pd.to_datetime(df[df.columns[0]]).dt.strftime('%m/%d/%Y')


0 commentaires