首页 > 解决方案 > 将列与 NULL 值相乘

问题描述

我正在尝试编写一个 python 代码,在其中将列值乘以其他列。但是,我的一个 C 列中的某些值是 NULL。我很难编程,如果值为 NULL,则将其切换为 1。

A     B     C         Result should be:    X    Y
5     3     2                              10   6
10    6                                    10   6
15    9                                    15   9
20    12    8                              160  96  

这是我尝试过的python代码:

if df[C] is NONE:
    df[X] = df[A]*1
else:
    df[X] = df[A]*df[C]

依此类推df[B]。但是,它仍然给我在 excel 中的空白,而不是我需要的“10 & 6”和“15 & 9”。

我用我的代码得到的结果:

X     Y
10    6


160   96

标签: pythonpandasdataframenull

解决方案


你可以使用np.where

df
Out[97]: 
    A   B    C
0   5   3  2.0
1  10   6  NaN
2  15   9  NaN
3  20  12  8.0
np.where(df.C.isna(),df.A,df.A*df.C)
Out[98]: array([ 10.,  10.,  15., 160.])

你的 if 函数应该带有 for 循环


推荐阅读