根据其他列的NaN状态对多列求和

Sum multiple columns according to NaN status of other columns

我正在尝试根据其他四列的 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 满足 A-D <> 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))

但是,这个 returns ValueError: "Cannot index with multidimensional key"

请你指导我正确的方向来纠正这个问题?

谢谢!

尝试:

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