如何在pandas中将两列乘以非NaN值?

laik7k3q  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(76)

我很好奇是否可以将两列A,B仅乘以非NAN值。
我有下面的dataframe与预期的结果:

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。我想遍历数据框。我试过几种方法,但都不起作用。

ycl3bljg

ycl3bljg1#

查看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
brccelvz

brccelvz2#

df = pd.DataFrame(data=obj)
df['t'] = (df['col1'].ffill())* (df['col2'].ffill())```

   col1  col2    t
0   1.0   3.0  3.0
1   2.0   4.0  8.0
2   1.0   NaN  4.0
3   NaN   8.0  8.0

相关问题