I am trying to drop rows at specific minutes ( 05,10, 20 ) I have datetime as an index
JavaScript
x
8
1
df5['Year'] = df5.index.year
2
df5['Month'] = df5.index.month
3
df5['Day']= df5.index.day
4
df5['Day_of_Week']= df5.index.day_name()
5
df5['hour']= df5.index.strftime('%H')
6
df5['Min']= df5.index.strftime('%M')
7
df5
8
Then I run below
JavaScript
1
7
1
def clean(df5):
2
for i in range(len(df5)):
3
hour = pd.Timestamp(df5.index[i]).hour
4
minute = pd.Timestamp(df5.index[i]).minute
5
if df5 = df5[(df5.index.minute ==5) | (df5.index.minute == 10)| (df5.index.minute == 20)]
6
df.drop(axis=1, index=i, inplace=True)
7
it returnes invalid syntax error.
Advertisement
Answer
You can just do it using boolean indexing, assuming that the index is already parsed as datetime.
JavaScript
1
2
1
df5 = df5[~((df5.index.minute == 5) | (df5.index.minute == 10) | (df5.index.minute == 20))]
2
Or the opposite of the same answer:
JavaScript
1
2
1
df5 = df5[(df5.index.minute != 5) | (df5.index.minute != 10) | (df5.index.minute != 20)]
2