Я искал по inte rnet и нашел похожий вопрос, где у меня есть часть кода, но я не могу добавить комментарий человеку, который разместил код из-за моей репутации , У меня есть тестовый набор данных, который состоит из DateTime - Value; эти значения получаются датчиками каждую минуту, но датчик не идеален, поэтому у меня есть два файла за один и тот же период, но с разной длиной и шаблонами, потому что иногда он принимает меру дважды в одну и ту же минуту.
Текущий набор тестовых данных не содержит данных за 10-ю минуту, поэтому программа ниже должна показать мне, что эта строка отсутствует.
import pandas as pd
import numpy as np
# testing data
data = pd.read_excel("testing.xlsx")
# Set Attribute Date to Pandas Datetime
data['Date'] = pd.to_datetime(data['Date'])
# Round Time into minutes
data['Date'] = pd.Series(data['Date']).dt.round("1min")
# Remove duplicates keeping one
data.drop_duplicates(subset ="Date", keep = "first", inplace = True)
# Change date order, because date_range increment month and not day
date['Date'] = data['Date'].dt.strftime('%d-%m-%Y %H:%M:%S')
# Data Range between initial date and final date
date_range = pd.date_range(date['Date'][date.index[0]], date['Date'][date.index[-1]], freq='1Min')
# Transform the column (it's a string) to datetime type
dt = pd.to_datetime(date['Date'])
# create datetime index passing the datetime series
dato = pd.DatetimeIndex(dt.values)
df = pd.DataFrame(np.random.randint(1, 20, (dato.shape[0], 1)))
df.index = dato # set index
df_missing = df.drop(df.between_time('02:12', '02:14').index)
#check for missing datetimeindex values based on reference index (with all values)
missing_dates = df.index[~df.index.isin(date.index)]
print(missing_dates)
А текущий вывод:
DatetimeIndex(['2019-04-01 02:00:00', '2019-04-01 02:01:00',
'2019-04-01 02:02:00', '2019-04-01 02:03:00',
'2019-04-01 02:04:00', '2019-04-01 02:05:00',
'2019-04-01 02:06:00', '2019-04-01 02:07:00',
'2019-04-01 02:08:00', '2019-04-01 02:09:00',
'2019-04-01 02:11:00', '2019-04-01 02:12:00',
'2019-04-01 02:13:00', '2019-04-01 02:14:00',
'2019-04-01 02:15:00', '2019-04-01 02:16:00'],
dtype='datetime64[ns]', freq=None)
Когда должно отображаться что-то вроде:
DatetimeIndex(['2019-04-01 02:10:00'],
dtype='datetime64[ns]', freq=None)