Мне было интересно, как можно убрать кусок времени из большей единицы времени. Допустим, у нас есть набор данных за день, и мы хотим удалить первые 10 секунд каждой минуты с этого дня. Как я могу сделать это в Pandas или Numpy?
В примере показаны значения в диапазоне 15 минут, а значения между 06 и 10 часами утра удалены. Это должно происходить каждый день в наборе данных. Я надеюсь, что вы можете помочь мне.
Before:
2019-01-01 05:15:00 0.0
2019-01-01 05:30:00 0.0
2019-01-01 05:45:00 0.0
2019-01-01 06:00:00 0.0
2019-01-01 06:15:00 0.0
After:
2019-01-01 05:15:00 0.0
2019-01-01 05:30:00 0.0
2019-01-01 05:45:00 0.0
2019-01-01 10:15:00 0.0
2019-01-01 10:30:00 0.0
Спасибо.
РЕДАКТИРОВАТЬ:
Я попробовал это, и это сработало:
#The actual deleting of the rows between 6am and 10 am
def delete_row_by_time(df, day):
from_ts = day + ' 06:00:00'
to_ts = day + ' 10:00:00'
df = df[(df.index < from_ts) | (df.index > to_ts)]
return df
#Get the actual days
days = eins.index.strftime('%Y-%m-%d').unique()
days = pd.to_datetime(days)
start_date = days.min()
end_date = days.max()
delta = datetime.timedelta(days=1)
#iterate through all days in dataset
while start_date <= end_date:
print(start_date)
df = delete_row_by_time(df, str(start_date))
start_date += delta
Может быть Есть некоторые улучшения, которые нужно сделать.