Обратиться к элементу датафрейма

Применила следующий код:

    df_all = pd.concat([df1, df2],axis='columns', keys=['First', 'Second'], sort=False)
    df_final = df_all.swaplevel(axis='columns')[df1.columns[1:]]

Тепперь надо получить все элементы First, где ячейки NaN. Как вызвать эти элементы? результат кода


Ответы (2 шт):

Автор решения: Elena Barbanova

Нашла, что обратиться можно вот так: res.xs('First', axis='columns', level=-1)

→ Ссылка
Автор решения: strawdog

То, что вы нашли метод cross-section - это хорошо. но он не решает поставленной вами задачи. Нужно не только выделить нужные столбцы в мультииндексе, но еще и найти строки, содержащие NaN.

При df:

A first half        second half       
B      first second       first second
0        1.0    1.0         1.0    1.0
1        2.0    2.0         NaN    2.0
2        3.0    3.0         3.0    3.0
3        4.0    4.0         4.0    4.0
4        NaN    NaN         5.0    5.0

Можно сделать так:

df.xs("first", level=-1, axis=1).loc[df.isna().any(axis=1)]
A  first half  second half
1         2.0          NaN
4         NaN          5.0

UPDATE

Для того, чтобы получить строку, где все элементы first равны np.nan, можно сделать так: df:

A first half        second half       
B      first second       first second
0        1.0    1.0         1.0    1.0
1        2.0    2.0         NaN    2.0
2        3.0    3.0         3.0    3.0
3        4.0    4.0         4.0    4.0
4        NaN    NaN         NaN    5.0
df[df.xs("first", level=-1, axis=1).isna().all(axis=1)]
A first half        second half       
B      first second       first second
4        NaN    NaN         NaN    5.0
→ Ссылка