Vælg DataFrame-rækker mellem to datoer
Jeg opretter et DataFrame fra en csv på følgende måde:
stock = pd.read_csv('data_in/' + filename + '.csv', skipinitialspace=True)
DataFrame har en dato kolonne. Er der en måde at oprette et nyt DataFrame (eller bare overskrive det eksisterende), som kun indeholder rækker med datoværdier, der falder inden for et bestemt datointerval eller mellem to bestemte datoværdier?
163
3
Der er to mulige løsninger:
df.loc[mask]
.df[start_date : end_date]
.Anvendelse af en boolsk maske:
Sørg for, at
df['date']
er en Series med dtypedatetime64[ns]
:Lav en boolsk maske.
start_date
ogend_date
kan væredatetime.datetime
s,np.datetime64
s,pd.Timestamp
s, eller endog datotidsstrenge:Jeg mener, at den bedste løsning vil være at bruge de direkte kontroller i stedet for at bruge loc-funktionen:
Du kan bruge metoden
isin
på kolonnendate
på følgende mådedf[df["date"].isin(pd.date_range(start_date, end_date))]
Bemærkning: Dette virker kun med datoer (som spørgsmålet spørger) og ikke med tidsstempler.
Eksempel:
som giver