0

My code returns a completely empty dataframe when I try to select and drop rows before a given datetime. Passing the datetime through as a string works however i need this to be a variable based on the last datetime value of my dataframe.

In:
df_transposed['Interval_Date'] = pd.to_datetime(df_transposed['Interval_Date'])
filter_range_begin = str((datetime.now() - timedelta(hours=2)).strftime("%Y-%m-%d %H:%M:%S"))
df_transposed = df_transposed.set_index('Interval_Date')
indexNames = df_transposed[df_transposed.index.get_level_values(0) > filter_range_begin]

Out:
Empty DataFrame
Columns: [0, 1, Label]
Index: []

Whereas:

In:
df_transposed['Interval_Date'] = pd.to_datetime(df_transposed['Interval_Date'])
filter_range_begin = '2020-09-01 02:00:00'
df_transposed = df_transposed.set_index('Interval_Date')
indexNames = df_transposed[df_transposed.index.get_level_values(0) > filter_range_begin]

Returns:

Out:
                         0    1  Label
Interval_Date                          
2020-09-01 02:15:00  401121  NaN    NaN
2020-09-01 02:30:00  815314  NaN    NaN
2020-09-01 02:45:00  885369  NaN    NaN

I also need to drop any rows that fall outside of this range.

Thank you.

YUragun
  • 117
  • 7

1 Answers1

0
import pandas
from datetime import datetime

df_transposed = df_transposed[df_transposed['Interval_Date'] < datetime.strptime(df_transposed['Interval_Date'].min(),'%Y-%m-%d')]

#You can put the date directly instead of df_transposed['Interval_Date'].min()
Yagmur Rigo
  • 131
  • 1
  • 5