У меня есть dataframe df:
20060930 10.103 NaN 10.103 7.981
20061231 15.915 NaN 15.915 12.686
20070331 3.196 NaN 3.196 2.710
20070630 7.907 NaN 7.907 6.459
Затем я хочу выбрать строки с определенными порядковыми номерами, которые указаны в списке, предположим, что здесь [1,3], а затем влево:
20061231 15.915 NaN 15.915 12.686
20070630 7.907 NaN 7.907 6.459
Как или какая функция может это сделать?
вы также можете использовать iloc:
Это не сработает, если индексы в вашем фрейме данных не соответствуют порядку строк из-за предыдущих вычислений. В этом случае используйте:
... как предлагается в других ответах.
источник
Другой способ (хотя это более длинный код), но он быстрее, чем приведенные выше коды. Проверьте это с помощью функции% timeit:
PS: Вы выясните причину
источник
df.index.get_level_values(0).isin
для мультииндексаДля больших наборов данных чтение только выбранных строк с помощью
skiprows
параметра эффективно с точки зрения памяти .пример
Теперь это вернет DataFrame из файла, который пропускает все строки, кроме 1 и 3.
подробности
Из документов :
Эта функция работает в версии pandas 0.20.0+. См. Также соответствующий выпуск и связанный пост .
источник