Selecteer DataFrame rijen tussen twee datums
Ik maak een DataFrame van een csv als volgt:
stock = pd.read_csv('data_in/' + filename + '.csv', skipinitialspace=True)
De DataFrame heeft een datum kolom. Is er een manier om een nieuw DataFrame te maken (of gewoon het bestaande DataFrame te overschrijven) dat alleen rijen bevat met datumwaarden die binnen een gespecificeerd datumbereik vallen of tussen twee gespecificeerde datumwaarden?
163
3
Er zijn twee mogelijke oplossingen:
df.loc[masker]
df[start_date : end_date]
Gebruik een boolean mask:
Zorg ervoor dat
df['date']
een Serie is met dtypedatetime64[ns]
:Maak een booleaans masker.
start_datum
eneind_datum
kunnendatetime.datetime
s zijn,np.datetime64
s,pd.Timestamp
s, of zelfs datetime strings:Ik denk dat de beste optie zal zijn om de directe controles te gebruiken in plaats van de loc-functie:
U kunt de
isin
methode gebruiken op dedatum
kolom als volgtdf[df["date"].isin(pd.date_range(start_date, end_date))]
Note: Dit werkt alleen met datums (zoals de vraag vraagt) en niet met timestamps.
Voorbeeld:
dat geeft