python中是否有类似于R的ifelse
语句?我有一个长度为64843的pandas.core.series.Series ds
。我需要记录该系列的每个数据点。串联中的一些值为0。在R中,我可以写
ifelse(ds==0,0,log(z))
但是在python中,我没有看到类似类型的语句。你能指导我吗?
最佳答案
我相信您通常需要numpy.where
,但是对于log
,可以将参数where
添加到numpy.log
。
此函数返回numpy 1d数组,因此对于新的Series
是必需的构造函数:
s = pd.Series([0,1,5])
s1 = pd.Series(np.log(s,where=s>0), index=s.index)
要么:
s1 = pd.Series(np.where(s==0,0,np.log(s)), index=s.index)
print (s1)
0 0.000000
1 0.000000
2 1.609438
dtype: float64
关于python - python中的if else语句类似于R,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53476756/