Учитывая, что в следующем примере у меня есть кадр данных pandas (с большим количеством строк / столбцов в реальном наборе данных):
| t1 | val1 | val2 | val3 | val4
------------------------------------
0| 1 | 1 | NaN | NaN | NaN
1| 2 | 12 | 5 | NaN | 4
2| 3 | 104 | 6 | NaN | NaN
3| 4 | -1 | 7 | 6 | NaN
4| 1 | -3 | 8 | 7 | 10
Я хотел бы извлечь только те строки, где t1 == 1 и val2, val3 и val4 являются значениями NaN и только некоторые столбцы.
Например, в приведенном выше кадре данных я хотел бы получить только первую строку.
До сих пор я пробовал следующее и некоторые его варианты без недостатков:
Я определил список меток для интересующих меня столбцов:
labels = [ 't1', 'val2', 'val3', 'val4']
Затем я запускаю следующий код, чтобы получить все значения с t1 == 1 и только указанные столбцы.
df2 = df.loc[df.t1 == 1, labels]
После этого я пытаюсь получить только строки, в которых val2, val3 и val4 являются NaN одновременно.
Я написал следующий код, но он не работает:
df3 = df2.loc[df2[labels].isnull() == True, labels]
Но он возвращает следующую ошибку:
ValueError: Cannot index with multidimensional key
Вы знаете, что не так? Или другой способ получить результаты, которые я хотел бы получить?
Заранее спасибо.