Analyser les dates quand AAAAMMJJ et HH sont dans des colonnes séparées à l'aide de pandas en Python
J'ai une question simple liées avec les fichiers csv et l'analyse de données datetime.
J'ai un fichier csv qui ressemblent à ceci:
YYYYMMDD, HH, X
20110101, 1, 10
20110101, 2, 20
20110101, 3, 30
Je voudrais le lire en utilisant les pandas (read_csv) et de le faire dans un dataframe indexés par le datetime. Jusqu'à présent, j'ai essayé de mettre en œuvre les suivantes:
import pandas as pnd
pnd.read_csv("..\\file.csv", parse_dates = True, index_col = [0,1])
et le résultat que j'obtiens est:
X
YYYYMMDD HH
2011-01-01 2012-07-01 10
2012-07-02 20
2012-07-03 30
Comme vous le voyez le parse_dates dans la conversion de la HH sur une autre date.
Est-il un moyen simple et efficace de combiner correctement la colonne "AAAAMMJJ" à la colonne "HH" afin d'avoir quelque chose comme cela? :
X
Datetime
2011-01-01 01:00:00 10
2011-01-01 02:00:00 20
2011-01-01 03:00:00 30
Merci d'avance pour l'aide.
Vous devez vous connecter pour publier un commentaire.
Si vous passer d'une liste à
index_col
, il signifie vous voulez créer un index hiérarchique de colonnes dans la liste.En outre, la
parse_dates
mot-clé peut être défini à True ou une liste/dict. Si cela est Vrai, alors il essaie d'analyser des colonnes individuelles comme les dates, sinon il combine les colonnes à analyser une seule colonne date.En résumé, ce que vous voulez faire est:
DataFrame
et n'a pas besoin d'assumer la date est l'indice de colonne qui serait vraiment utile. Peut-être une autre question?Je fais cela tout le temps, j'ai donc testé différentes façons pour la vitesse.
La manière la plus rapide que j'ai trouvé est la suivante, env. 3 fois plus rapide que Chang Elle est la solution, au moins dans mon cas, lors de la prise de la durée totale de l'analyse du fichier et la date de l'analyse syntaxique en compte:
D'abord, d'analyser le fichier de données à l'aide de la mp.read_csv sans l'analyse des dates. Je trouve que c'est le ralentissement de la lecture de fichiers beaucoup. Assurez-vous que les colonnes du fichier CSV sont maintenant colonnes dans le dataframe df. Alors:
unsupported operand type(s) for +: 'numpy.ndarray' and 'str'
df['year'].astype(int).astype(str)
. Laid, mais il fonctionne. ;7)