栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在数据框的每一行上应用函数?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在数据框的每一行上应用函数?

以下应该工作:

def EOQ(D,p,ck,ch):    Q = math.sqrt((2*D*ck)/(ch*p))    return Qch=0.2ck=5df['Q'] = df.apply(lambda row: EOQ(row['D'], row['p'], ck, ch), axis=1)df

如果您要做的只是计算某个结果的平方根,则使用

np.sqrt
矢量化的方法,它将大大加快速度:

In [80]:df['Q'] = np.sqrt((2*df['D']*ck)/(ch*df['p']))dfOut[80]:    D   p          Q0  10  20   5.0000001  20  30   5.7735032  30  10  12.247449

时机

对于3万行df:

In [92]:import mathch=0.2ck=5def EOQ(D,p,ck,ch):    Q = math.sqrt((2*D*ck)/(ch*p))    return Q%timeit np.sqrt((2*df['D']*ck)/(ch*df['p']))%timeit df.apply(lambda row: EOQ(row['D'], row['p'], ck, ch), axis=1)1000 loops, best of 3: 622 µs per loop1 loops, best of 3: 1.19 s per loop

您可以看到np方法快了约1900 X



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624351.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号