将列与NULL值相乘

时间:2018-11-02 20:18:34

标签: python pandas dataframe 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

2 个答案:

答案 0 :(得分:2)

您可以使用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循环

答案 1 :(得分:1)

只需使用fillna来替代C列中值为1的NaN。

df['X'] = df['A'] * df['C'].fillna(1)
df['Y'] = df['B'] * df['C'].fillna(1)

>>> df
    A   B   C    X   Y
0   5   3   2   10   6
1  10   6 NaN   10   6
2  15   9 NaN   15   9
3  20  12   8  160  96