2
votes

datetime combiner date et heure

J'essaie d'utiliser ce message SO pour combiner une date et une heure sans avoir de chance ..

df['DateTime'] = df.apply(lambda x: combine(df['Date'], df['Time']), axis=1)

C'est là que je suis coincé, je ne sais pas comment importer correctement le package ..

Cela ne fonctionne pas: from datetime import combine

#df= pd.read_csv('C:\\Users\\desktop\\master.csv', index_col='Date', parse_dates=True)
df= pd.read_csv('C:\\Users\\desktop\\master.csv')

Quand tout est dit et fait, dois-je parse_dates = True ? Habituellement, toutes mes données sont une date et une heure combinées ... et enfin, je dois définir un nouvel index dans mon cadre de données pandas pour la nouvelle colonne date-heure combinée.

Tous les conseils sont grandement appréciés, merci p >


2 commentaires

vous pouvez faire importer datetime puis l'utiliser comme datetime.datetime.combine ou à partir de datetime import datetime puis datetime.combine < / code>


@Vaishali, merci la réponse dans le lien que vous avez fourni a totalement fonctionné ... Si vous postez une réponse, cochez la case verte. df = pd.read_csv ('C: \\ Users \\ desktop \\ master.csv', parse_dates = [['Date', 'Time']])


3 Réponses :


0
votes

Supposons que vous ayez des données à partir desquelles vous souhaitez créer une date dans la colonne 1, alors vous utilisez la formule magique:

df['date2']= pd.to_datetime(df[['year', 'month', 'day']])
# to check
print(m1.dtypes)

Votre méthode:

parse_dates = True


0 commentaires

0
votes

La combinaison de fonctions est à l'intérieur du type datetime dans le module datetime. Essayez plutôt ceci.

from datetime import datetime
df['DateTime'] = df.apply(lambda x: datetime.combine(df['Date'], df['Time']), axis=1)


1 commentaires

Cela génère une erreur: TypeError: ('L'argument 1 de combine () doit être datetime.date, pas Series', 's'est produit à l'index 0')



0
votes

Vous pouvez lire les colonnes spécifiées au format datetime à l'aide du paramètre parse_dates ou les lire en tant qu'objets, puis les convertir en datetime.

Option 1:

df= pd.read_csv('C:\\Users\\desktop\\master.csv')
df['datetime'] = pd.to_datetime(df['Date'] + ' ' + df['Time'])

Option 2:

df= pd.read_csv('C:\\Users\\desktop\\master.csv', parse_dates=[['Date', 'Time']])


1 commentaires

pouvez-vous m'aider avec cette question par hasard? L'objet stackoverflow.com/questions/54639490 /…