Bonjour, j'ai un petit problème concernant les dataframes panda.
Je crée un dataframe Pandas à partir d'un fichier excel.
L'une des colonnes contient une date stockée sous forme de str.
Je la convertis donc en objet datetime avec la bibliothèque associée.
Je souhaite ensuite "diviser" mon dataframe en 2 nouveaux dataframe, l'un qui contiendra les lignes dont l'heure est supérieure à 13h, et l'autre celles pour lesquels l'heure est inférieure à 13h.
Malheureusement la syntaxe que j'utilise est incorrecte.
Voici actuellement mon code :
1 2 3 4 5 6
| orders = pd.read_excel('data', sheet_name="feuil1",usecols='A,G,H,J,L')
for i in range(len(orders)):
orders.at[i,'Date']=dt.datetime.strptime(orders.loc[i,'Date'],'%d/%m/%Y %H:%M')
AM = dt.time(13)
ordersM=orders[orders['Date'].time()<=AM]
ordersAM=orders[orders['Date'].time()>AM] |
et bien évidemment j'obtiens l'erreur : AttributeError: 'Series' object has no attribute 'time'
Auriez-vous une idée de comment faire ?
J'ai essayé de faire une boucle for qui ressemblait à ça :
ordersM = orders[(date.time()<=AM for date in orders['Date'])]
mais j'ai alors un message du genre "Index out of bounds" (que je ne comprends pas vraiment d'ailleurs).
Je précise que j'aimerais conserver la date complète dans les dataframes, même si je n'utilise que l'heure pour les "trier".
Auriez-vous une idée ?
Merci d'avance
Partager