У меня есть следующие dataframe
,
df = pd.DataFrame({'col1':range(9), 'col2': list(range(7)) + [np.nan] *2},
index = pd.date_range('1/1/2000', periods=9, freq='0.5S'))
df
Out[109]:
col1 col2
2000-01-01 00:00:00.000 0 0.0
2000-01-01 00:00:00.500 1 1.0
2000-01-01 00:00:01.000 2 2.0
2000-01-01 00:00:01.500 3 3.0
2000-01-01 00:00:02.000 4 4.0
2000-01-01 00:00:02.500 5 5.0
2000-01-01 00:00:03.000 6 6.0
2000-01-01 00:00:03.500 7 NaN
2000-01-01 00:00:04.000 8 NaN
Как можно видеть выше, каждую секунду появляются две точки данных.Что я хотел бы сделать, так это для двух строк в секунду, если оба столбца в последней строке имеют правильный номер, эта строка будет выбрана;если какие-либо столбцы в последней строке недействительны, мы увидим, что предыдущая строка действительна для бот-столбца, если она действительна, мы выберем предыдущую строку, иначе пропустим вторую.Соответствующий кадр данных выглядит следующим образом:
col1 col2
2000-01-01 00:00:00.000 1 1.0
2000-01-01 00:00:01.000 3 3.0
2000-01-01 00:00:02.000 5 5.0
2000-01-01 00:00:03.000 6 6.0
Как этого добиться?