Удалите строки (ie. Заполните NaN) и вставьте в Pandas Dataframe - PullRequest
1 голос
/ 11 февраля 2020

Я работаю с данными ряда времен, и мне нужно отфильтровать мусор. Цель состоит в том, чтобы сохранить метки времени и интерполировать ненужные данные.

Я пробовал просто отфильтровывать int и переиндексировать, но python, похоже, не обрабатывает индексы даты и времени одинаково.

Итак, попробовал

ogIndex = df.index
df = df[df[col to filter] > some filter #]   # drops the index
df.reindex(ogIndex)

...... не сработало

1 Ответ

0 голосов
/ 12 февраля 2020

Предполагая, что временные метки являются индексом информационного кадра. Вместо того чтобы удалять его с помощью df = df[df[col to filter] > some filter], просто инвертируйте фильтр (чтобы выбрать строки, которые вы делаете не хотите сохранить), и установите для отфильтрованных строк значение NaN:

import numpy as np

df[df[col to filter] < some filter] = np.nan

Это сохраняет индекс и делает строку применимой для интерполяции. После этого вы можете использовать метод интерполяции, например, такой:

df.interpolate(method='linear', limit_direction='forward', axis=0)
...