将列与空值相乘

2024-04-24 11:52:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个python代码,其中我将列值乘以其他列。但是,有些值在我的one C列中是空的。我有一个困难的时间如何编程,如果一个值是空的,把它切换到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代码:

^{pr2}$

等等,还有df[B]。但是,它在excel中还是空白,而不是我需要的“10&6”和“15&9”。在

我用代码得到的结果:

X     Y
10    6


160   96

Tags: 代码df编程时间beresultexcelone
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循环

只需使用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

相关问题 更多 >