Détails
Sélectionner les lignes de DataFrame entre deux dates
Je crée un DataFrame à partir d'un csv comme suit :
stock = pd.read_csv('data_in/' + filename + '.csv', skipinitialspace=True)
Le DataFrame comporte une colonne date. Existe-t-il un moyen de créer un nouveau DataFrame (ou simplement d'écraser le DataFrame existant) qui ne contient que les lignes dont les valeurs de date sont comprises dans une plage de dates spécifiée ou entre deux valeurs de date spécifiées ?
163
3
Il y a deux solutions possibles :
df.loc[mask]
.df[start_date : end_date]
.Utilisation d'un masque booléen :
Assurez-vous que
df['date' ;]
est une série avec le dtypedatetime64[ns]
:Créez un masque booléen.
start_date
etend_date
peuvent êtredatetime.datetime
s,np.datetime64
s,pd.Timestamp
s, ou même des chaînes de dates :Je pense que la meilleure option sera d'utiliser les contrôles directs plutôt que d'utiliser la fonction loc :
Vous pouvez utiliser la méthode
isin
sur la colonnedate
comme suit `df[df["date" ;].isin(pd.date_range(start_date, end_date))]``Note: Cela ne fonctionne qu'avec les dates (comme le demande la question) et non avec les timestamps.
Exemple:
ce qui donne