Velg DataFrame-rader mellom to datoer
Jeg oppretter en DataFrame fra en csv-fil på følgende måte:
stock = pd.read_csv('data_in/' + filename + '.csv', skipinitialspace=True)
DataFrame har en datakolonne. Er det mulig å opprette en ny DataFrame (eller bare overskrive den eksisterende) som bare inneholder rader med datoverdier som faller innenfor et spesifisert datointervall eller mellom to spesifiserte datoverdier?
163
3
Det finnes to mulige løsninger:
df.loc[mask]
.df[start_date : end_date]
.Bruke en boolsk maske:
Kontroller at
df['date']
er en serie med dtypedatetime64[ns]
:Lag en boolsk maske.
start_date
ogend_date
kan væredatetime.datetime
,np.datetime64
,pd.Timestamp
eller til og med datetime-strenger:Jeg tror det beste alternativet vil være å bruke de direkte kontrollene i stedet for å bruke loc-funksjonen:
Du kan bruke metoden
isin
på kolonnendate
på følgende måtedf[df["dato"].isin(pd.date_range(start_date, end_date))]
Note: Dette fungerer bare med datoer (som spørsmålet spør om) og ikke tidsstempler.
Eksempel:
som gir