user cat val1 val2 val3
user1 cat1 3 NA NA
cat2 NA NA NA
cat3 NA NA 5
user2 cat1 NA NA NA
cat2 NA 6 NA
cat3 NA NA 7
user3 cat1 4 NA NA
cat2 NA NA NA
cat3 NA NA NA
В этом кадре данных df, user и cat - индексы. Я хочу выполнить итерацию по каждому пользователю и посчитать, сколько строк на каждого пользователя имеют ВСЕ значения NA. (cat1 соответствует val1 и т. д.)
В этом примере user1 и user2 имеют 1 пропущенную строку, а user3 имеет 2 пропущенных строки.
РЕДАКТИРОВАТЬ: ответ был предоставлен значительно ниже.
Каков наилучший способ фильтрации df, чтобы отображались только пользователи без пропущенных значений.
У меня есть:
s[s == 0].index
, который обеспечивает индексы (ниже это; выше датафрейм был просто общий df)
Index([25c90900-cd25-4f51-8634-3eba9821e167,
29b63a9d-3a60-4d69-b507-145977b0dc49,
843a997d-5446-41d1-8697-4ded33bba85d,
690d0511-232c-4bd9-98ae-c9bb101bc18b,
35a2dabb-ac20-48cb-8d1e-adf53c68d546,
859591fd-67fc-41b3-823b-33053dbccc47,
7b8a4cfb-3010-4bc3-9963-14f2b4f6ffdb,
266f5f1f-0a58-49ca-9e66-7e8d2058a836,
77b99c57-f37b-48d5-b8b9-68929f31d3fc,
47afb3d3-98bb-4486-8935-a0b57a2de0c6,
...
e14e69f6-3e33-4d1f-beff-76a35c2e11e9,
e81c9737-e632-460a-9a12-c6bc7b48341b,
c63ddb6e-2d89-4188-97c0-794aab70a816,
4c4a259c-7121-41c7-8e15-f8b87071489a,
a612b6ee-4143-44a6-9214-81e607d4c9c3,
9d95839e-94c6-4659-ab88-95159e3a1238,
04826220-c5eb-4042-a355-217526aed323,
6054dd2d-9298-49b9-8617-3e156459ab2d,
3d8aeb80-7473-4d4c-90e6-8603133a7c65,
0aa7ac36-0274-48ba-86e6-f807645e0559],
dtype='object', name='uuid', length=2217)