我是Python新手,不知道如何解决以下问题。
我有一个功能:
def EOQ(D,p,ck,ch):
Q = math.sqrt((2*D*ck)/(ch*p))
return Q
假设我有数据帧
df = pd.DataFrame({"D": [10,20,30], "p": [20, 30, 10]})
D p
0 10 20
1 20 30
2 30 10
ch=0.2
ck=5
而ch
和ck
是浮点类型。现在我想将公式应用到数据帧上的每一行,并将其作为一个额外的行“Q”返回。一个不起作用的例子是:
df['Q']= map(lambda p, D: EOQ(D,p,ck,ch),df['p'], df['D'])
(仅返回“map”类型)
我将需要在我的项目中更多的这种类型的处理,我希望找到一些工作。
以下方法应该有效:
如果您所做的只是计算某个结果的平方根,那么使用
np.sqrt
方法这是矢量化的,并且速度会快得多:计时
对于30k行df:
你可以看到np方法快了~1900倍
相关问题 更多 >
编程相关推荐