如何将 pandas 中的两列仅乘以非 NaN 值?
How to multiply two columns in pandas, by only non-NaN values?
我很好奇是否可以将两列 A,B
仅乘以非 NAN 值。
我有以下具有预期结果的数据框:
A B C
Date Symbol
1/1/2017 BTC Nan 2 Nan
ETH 3 Nan 6
XRP 2 Nan 4
1/2/2017 BTC Nan 3 Nan
ETH 1 Nan 3
XRP 2 Nan 6
我正在尝试将列 A
的非 Nan 值乘以列 B
的非 NaN 值,并将结果分配给列 C
。
我想遍历数据框。我尝试了一些东西,但没有任何效果。
检查ffill
#df=df.replace('Nan',np.nan)# Nan is not NaN , replace it
#df=df.apply(pd.to_numeric,1) # convert to numeric
df.C=df.A*(df.B.ffill())
df
Out[130]:
A B C
Date Symbol
1/1/2017 BTC NaN 2.0 NaN
ETH 3.0 NaN 6.0
XRP 2.0 NaN 4.0
1/2/2017 BTC NaN 3.0 NaN
ETH 1.0 NaN 3.0
XRP 2.0 NaN 6.0
我很好奇是否可以将两列 A,B
仅乘以非 NAN 值。
我有以下具有预期结果的数据框:
A B C
Date Symbol
1/1/2017 BTC Nan 2 Nan
ETH 3 Nan 6
XRP 2 Nan 4
1/2/2017 BTC Nan 3 Nan
ETH 1 Nan 3
XRP 2 Nan 6
我正在尝试将列 A
的非 Nan 值乘以列 B
的非 NaN 值,并将结果分配给列 C
。
我想遍历数据框。我尝试了一些东西,但没有任何效果。
检查ffill
#df=df.replace('Nan',np.nan)# Nan is not NaN , replace it
#df=df.apply(pd.to_numeric,1) # convert to numeric
df.C=df.A*(df.B.ffill())
df
Out[130]:
A B C
Date Symbol
1/1/2017 BTC NaN 2.0 NaN
ETH 3.0 NaN 6.0
XRP 2.0 NaN 4.0
1/2/2017 BTC NaN 3.0 NaN
ETH 1.0 NaN 3.0
XRP 2.0 NaN 6.0