Home > Blockchain >  only pull rows for today's date from dataframe
only pull rows for today's date from dataframe

Time:02-11

I'm pulling data from an API and placing it into a Pandas dataframe. I want to then create a new df that includes only the rows that have today's date in. I know how to select between two static dates, but can't seem to filter by a 'today' timestamp.

from matplotlib import pyplot as plt

#Access API
r = requests.get('REMOVED')
x = r.json()
keys = x.keys()
old_df = pd.DataFrame(x['results'])

#set dataframe
df = old_df[['valid_from','valid_to','value_inc_vat']].copy()

df['valid_from'] = pd.to_datetime(df['valid_from'])
df['valid_to'] = pd.to_datetime(df['valid_to'])

#only today's rows
today = pd.Timestamp.today().date()
mask = (df['from'] == today)
df_today = df.loc[mask]```

CodePudding user response:

Use Series.dt.date for compare by dates:

mask = (df['from'].dt.date == today)
df_today = df[mask]

CodePudding user response:

You can use the following check to compare two dates:

mask = (df['from'].dt.date == today)
df_date_today = df[mask]
  • Related