Split datetime64 colonne en une date et une heure de colonne dans les pandas dataframe
Si j'ai un dataframe avec la première colonne étant un datetime64 colonne. Comment puis-je partager cette colonne en 2 colonnes, une colonne de date et d'une colonne de temps. Voici mes données et le code pour l'instant:
DateTime,Actual,Consensus,Previous
20140110 13:30:00,74000,196000,241000
20131206 13:30:00,241000,180000,200000
20131108 13:30:00,200000,125000,163000
20131022 12:30:00,163000,180000,193000
20130906 12:30:00,193000,180000,104000
20130802 12:30:00,104000,184000,188000
20130705 12:30:00,188000,165000,176000
20130607 12:30:00,176000,170000,165000
20130503 12:30:00,165000,145000,138000
20130405 12:30:00,138000,200000,268000
...
import pandas as pd
nfp = pd.read_csv("NFP.csv", parse_dates=[0])
nfp
Donne:
Out[10]: <class 'pandas.core.frame.DataFrame'>
Int64Index: 83 entries, 0 to 82
Data columns (total 4 columns):
DateTime 82 non-null values
Actual 82 non-null values
Consensus 82 non-null values
Previous 82 non-null values
dtypes: datetime64[ns](1), float64(3)
Du tout bon, mais ne savez pas quoi faire à partir d'ici.
Deux points spécifiquement, je ne suis pas sûr au sujet de:
- Est-il possible de le faire quand j'ai lu le fichier csv en premier lieu? Si oui, comment?
- Quelqu'un peut-il aider à me montrer comment faire la split une fois, j'ai effectué csv_read?
Aussi, il est partout, je peux regarder ce genre d'information?
Un moment difficile de trouver une référence détaillée de la classe des bibliothèques Merci!
Vous devez vous connecter pour publier un commentaire.
Comment analyser le CSV directement dans le souhaité DataFrame:
Passer un dict de fonctions à
pandas.read_csv
'sconverters
argument mot-clé:rendements
sep=r'[\s,]'
ditread_csv
pour séparer les lignes de la csv sur laregex modèle
r'[\s,]'
-- un espace ou une virgule.converters
paramètre indiqueread_csv
pour appliquer lales fonctions de certaines colonnes. Les touches (par exemple 0 et 1) reportez-vous à la
index de colonne, et les valeurs sont les fonctions à appliquer.
Comment diviser le DataFrame après l'exécution de csv_read
Qui est le plus rapide?
Il dépend de la taille de la CSV. (Merci à Jeff pour le rappeler.)
Pour les petits volumes csv, de l'analyse du CSV dans la forme désirée directement est plus rapide que d'utiliser un DatetimeIndex après l'analyse avec
parse_dates=[0]
:Cependant, pour CSVs de quelques centaines de lignes ou plus, à l'aide d'un DatetimeIndex est plus rapide.
Où puis-je regarder ce genre d'information?
les pandas de la documentation aidera sûrement trop.
?
après unla fonction, il vous donne la fonction de la docstring. Ces deux caractéristiques
vraiment vous aider à connaître le fonctionnement de Python rapidement des objets. Il vous indique également dans ce fichier la fonction est définie (si elle est définie dans le plus pur Python) -- ce qui m'amène à...
Il suffit de garder à elle. Le plus vous en savez, plus cela devient facile.
Si vous lui donner votre meilleur coup et ne peut toujours pas trouver la réponse, poser une question sur Stackoverflow. Vous aurez espère avoir une réponse rapidement, et aider les autres à la recherche de la même chose.
infer_datetime_format=True
. Où voulez-vous utiliserto_datetime
?DatetimeIndex
solution plutôt que le convertisseur de solution. Il ne sera pas seulement d'être plus rapide pour la taille normale CSV, mais aussi d'éviter la date de l'analyse des problèmes depuisparse_dates
utilise dateutil flexible date de l'analyseur.