如何用df的两列作复杂的运算
发布日期:2021-05-06 21:45:31 浏览次数:20 分类:精选文章

本文共 502 字,大约阅读时间需要 1 分钟。

代码如下:

data=pd.DataFrame(np.random.randn(5,5),columns=list('abcde'))

def fun1(s):

    if s >0.9:
        return 1
    elif s>0.5:
        return 0
    else:
        return -1
def fun2(s,d):
    if np.exp(s-d)>0.9:
        return 1
    elif np.exp(s-d)>0.5:
        return 0
    else:
        return -1
data['l']=data['a'].map(fun1)
data['l']=data['a'].map(lambda x:fun1(x))

data['s']=data.apply(lambda x:fun2(x.a,x.b),axis=1)

正常输出;

结论:首先需要知道map是针对series,而且是元素级别的操作;而apply或applymap是针对dataframe操作的,apply是针对行列的,而加了个map针对的就是元素了;其本质区别在两函数传入的值不同;apply(x)中的代表行或是列,而applymap中的代表一个元素;

上一篇:需要正则化的一个判断
下一篇:batchnorm与dropout的区别

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月12日 18时33分08秒