Суммирование нескольких столбцов в соответствии со статусом NaN других столбцов - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь получить сумму четырех столбцов на основе статуса NaN четырех других столбцов

Мой фрейм данных выглядит так:

 A    B    C    D    A_pct  B_pct  C_pct  D_pct
100  NaN  NaN  100   5%      95%     0%     0%
100  NaN  250  100   1%      84%     15%    0%

Я хочу суммировать A_pct> > D_pct, где выполняется условие AD <> NaN.

Следовательно, для первой строки результат будет 5%; для второй строки результат будет 16%

Я сделал следующее:

Pct_Sum = (df.loc[(df["A"].notna()) & (df["B"].notna()) & (df["C"].notna()) & df["D"].notna()),
 df[["A_pct","B_pct","C_pct","D_pct"]]].sum(axis=1))

Однако это возвращает ValueError: «Невозможно индексировать с многомерным ключом»

Пожалуйста, не могли бы вы направить меня в правильном направлении, чтобы исправить это?

Спасибо!

1 Ответ

0 голосов
/ 27 мая 2020

попробуйте:

df.apply(lambda x: sum(x[:4].notnull().values * (x[4:].str[:-1].astype(float)/100).values), axis=1)
...