I got a dataframe in python.pandas:
q v k
0 0
16 42
14 59
... ...
Now I want let k=q/v if v!=0 else k=0. This is how I did:
>>>df['k'] = df['q'].astype(float16) /df['v'].astype(float16)
q v k
0 0 NaN
>>>df['k'][df['v']==0] = 0.0
When set float16, it gives NaN. However
>>>0/np.float64(0)
nan
>>>df['k'] = df['q'] /df['v'].astype(float16)
ZeroDivisionError
Moreover,
>>> df['k'] = df['q'].astype(int16)/df['v'].astype(int16)
q v k
0 0 inf
>>> np.int64(0)/np.int64(0)
nan
Why?