Я хочу выбрать столбцы из DataFrame в соответствии с определенным условием. Я знаю, что это можно сделать с помощью цикла, но мой df очень велик, поэтому эффективность имеет решающее значение. Условие выбора столбца имеет либо только не-нанные записи, либо последовательность только nans, за которыми следует последовательность только не-nan записей.Условный выбор столбцов в pandas
Вот пример. Рассмотрим следующий DataFrame:
pd.DataFrame([[1, np.nan, 2, np.nan], [2, np.nan, 5, np.nan], [4, 8, np.nan, 1], [3, 2, np.nan, 2], [3, 2, 5, np.nan]])
0 1 2 3
0 1 NaN 2.0 NaN
1 2 NaN 5.0 NaN
2 4 8.0 NaN 1.0
3 3 2.0 NaN 2.0
4 3 2.0 5.0 NaN
От него, я хотел бы, чтобы выбрать столбцы только 0 и 1. Любые советы о том, как сделать это эффективно без зацикливания?
Благодаря @piRSquared. Это решение действительно выполняет свою работу, но для запуска требуется более 3-х раз дольше, чем решение, размещенное ниже – splinter
@splinter. Я не удивлен. Я думал о том, чтобы идти по маршруту, который взял Никил, но я выбрал краткость. Никиль дал хороший ответ. Я обновляю свой пост, используя ту же логику, но используя несколько трюков, чтобы ускорить его. – piRSquared
Звучит отлично @piRSquared – splinter