Как умножить два столбца в фрейме данных, если в одном столбце есть nan

#python #pandas #list #dataframe #operators

Вопрос:

У меня есть фрейм данных, подобный этому

 data= {'A':[np.nan,1,3,np.nan],'B':[np.nan,2,np.nan,8]}
df=pd.DataFrame(data,columns=['A','B'])
print(df)
 

Я хочу выполнить операцию умножения, такую как

 df['C']=df['A']*df['B']
 

Но так как в столбце есть значения nan, это дает мне эту ошибку

 TypeError: can't multiply sequence by non-int of type 'float'
 

Поэтому дайте мне знать, как сделать это умножение возможным.
например: np.nan*8 = np.nan —>должен дать мне вот так

Большое вам спасибо !!

Комментарии:

1. использовать df['C']=df['A'].mul(df['B'])

2. df.assign(C=df.prod(1, skipna=False)

3. кстати, какова ваша версия панды? bcz в '1.2.4' этом df['C']=df['A']*df['B'] отлично работает!!

4. Тот же ответ, что и @AnuragDabas для» 1.3.0' .