У меня есть фрейм данных, как показано ниже. Я хочу сделать выборку с «3S»
Так что есть ситуации, когда присутствует NaN. Я ожидал, что фрейм данных должен выполнять выборку с помощью «3S», а также, если между ними обнаружен какой-либо «NaN», тогда остановиться на этом и начать выборку с этого индекса. Я попытался использовать метод dataframe.apply
для достижения, но это выглядит очень сложно. Есть ли какой-нибудь короткий путь для достижения?
df.sample(n=3)
Код для генерации ввода:
index = pd.date_range('1/1/2000', periods=13, freq='T')
series = pd.DataFrame(range(13), index=index)
print series
series.iloc[4] = 'NaN'
series.iloc[10] = 'NaN'
Я пытался сделать выборку, но после этого понятия не имею, как поступить.
2015-01-01 00:00:00 0.0
2015-01-01 01:00:00 1.0
2015-01-01 02:00:00 2.0
2015-01-01 03:00:00 2.0
2015-01-01 04:00:00 NaN
2015-01-01 05:00:00 3.0
2015-01-01 06:00:00 4.0
2015-01-01 07:00:00 4.0
2015-01-01 08:00:00 4.0
2015-01-01 09:00:00 NaN
2015-01-01 10:00:00 3.0
2015-01-01 11:00:00 4.0
2015-01-01 12:00:00 4.0
Новый фрейм данных должен производить выборку на основе «3S», а также учитывать «NaN», если таковой имеется, и начинать выборку оттуда, где находятся записи «NaN».
Ожидаемый результат:
2015-01-01 02:00:00 2.0 -- Sampling after 3S
2015-01-01 03:00:00 2.0 -- Print because NaN has found in Next
2015-01-01 04:00:00 NaN -- print NaN record
2015-01-01 07:00:00 4.0 -- Sampling after 3S
2015-01-01 08:00:00 4.0 -- Print because NaN has found in Next
2015-01-01 09:00:00 NaN -- print NaN record
2015-01-01 12:00:00 4.0 -- Sampling after 3S