У меня есть кадр данных с переменной частотой дискретизации <30 Гц.Я хочу увеличить частоту дискретизации до 30, повторяя последний ряд данных кадра каждую секунду.Столбец метки времени в моем фрейме данных не имеет миллисекунд.Одна и та же отметка времени повторяется для всех строк этой секунды.Также данные не являются непрерывными, некоторые секунды отсутствуют между ними.Мой фрейм данных <code>df содержит столбцы ['Timestamp','vm','angle']
.
Вот что я попробовал
def samfreq(args):
size = len(args)
inc= 30-size
args=args.append( args.iloc[[-1]*inc] )
args = args.reset_index(drop=True)
return args
df= df.resample('1S',on='Timestamp').apply(samfreq)
Запуск приведенного выше кода дает мне эту ошибку
IndexError: positional indexers are out-of-bounds
Еслиданные непрерывны, я не думаю, что получу вышеуказанную ошибку.Как увеличить частоту дискретизации для всех секунд данных, игнорируя пропущенные промежуточные секунды.
Вот пример кода для генерации данных, аналогичных тому, на котором я просыпаюсь. Я намеренно пропустил секунду вданные для имитации моих данных.
d = {'Timestamp': pd.date_range(start='2016-04-15 10:36:47', end='2016-04-15 10:36:47', periods=12), 'vm': np.random.randn(12),'angle':np.random.randn(12)}
df = pd.DataFrame(data=d)
d = {'Timestamp': pd.date_range(start='2016-04-15 10:36:49', end='2016-04-15 10:36:49', periods=15), 'vm': np.random.randn(15),'angle':np.random.randn(15)}
df1 = pd.DataFrame(data=d)
df = df.append(df1,ignore_index=True)
Как мне заставить это работать?