If else 以 NaN 值运行

If else function with NaN values

我导入了一个 excel,现在我需要将列表中的某些值相乘,但如果第一列的值为 NaN,Python 应该使用另一列进行计算。我得到以下代码:

if pd['Column1'] == 'NaN':
    pd['Column2'] * pd['Column3']
else:
    pd['Column1'] * pd['Column3']

感谢您的帮助。

您可以将 isna()any()all() 一起使用。这是一个例子:

import pandas as pd
import numpy as np

#generating test data assuming all the values in Col1 are 'NaN'
df = pd.DataFrame({'Col1':[np.nan,np.nan,np.nan,np.nan], 'Col2':[1,2,3,4], 'Col3':[2,3,4,5]}) 

if df['Col1'].isna().all(): # you can also use 'any()' instead of all()
    df['Col4'] = df['Col2']*df['Col3']
else:
   df['Col4'] = df['Col1']*df['Col3']

print(df)

输出:

   Col1  Col2  Col3  Col4
0   NaN     1     2     2
1   NaN     2     3     6
2   NaN     3     4    12
3   NaN     4     5    20