#python #pandas #dataframe
Вопрос:
Это кажется супер простым, и все же мне не удается отфильтровать этот фрейм данных. Как вы можете видеть на скриншоте, я загружаю очень простой набор данных. Я проверяю, есть ли какие-либо значения в столбце «Col3» na. И, наконец, я пытаюсь отфильтровать фрейм данных, используя это. Я надеюсь, что мне вернут только второй столбец (с индексом 1). Но, как вы можете видеть, я получаю все 5 строк, но значения для Col3 теперь все NaN.
Я использую Python 3.7.3 и Pandas 1.1.4
Попытка предложения wwnde использовать скобки вместо .loc, похоже, не сработала:
Ответ №1:
Попробуй
данные( теперь, когда вы не дали мне образцы данных)
df = pd.DataFrame({'group1': [0, 0, 1, 1], 'group2': [2, 2, 3, 4],
'base': [0, 1, 2, 3], 'x1': [3, 4, 5, 6], 'x2': [np.nan, 6, np.nan, 8]})
df[df['x2'].isna()]
group1 group2 base x1 x2
0 0 2 0 3 NaN
2 1 3 2 5 NaN
Используйте метод доступа loc, если вам нужно вызвать определенные столбцы
df.loc[df['x2'].isna(),:'base']#base and preceding columns
group1 group2 base
0 0 2 0
2 1 3 2
или
df.loc[df['x2'].isna(),['base','x1']]
base x1
0 0 3
2 2 5
Комментарии:
1. Это, к сожалению, привело к тому же результату — см. Мою правку
2. На какой версии вы находитесь?
3. Python 3.7.3 и Панды 1.1.4
4. Смотрите мои правки. С удовольствием воспользуюсь вашими данными, если вы предоставите образец.