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