如何用df的两列作复杂的运算

代码如下:

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中的代表一个元素;

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值