簡體   English   中英

帶有功能的Pandas DataFrame逐行公式

[英]Pandas dataframe row-wise formula with function

所以我有相當大的DataFrame,並根據其他列根據一些方程式創建了一個新列:

df['F'] = (params.a * params.b * df.A/1000 - param.C * (df.B + df.C - df.D) + param.D * df.E

而且效果很好。 除了要在整個代碼中重復此功能之外 ,因此我不想將其易於復制和粘貼,而是將其強制轉換為可重用的功能。

所以我將其轉換為lambda:

def fun(r):
     return (params.a * params.b * r.A/1000 - param.C * (r.B + r.C - r.D) + param.D * r.E   
df['F'] = r.apply(funy,axis =1)

但這現在了5倍(對於1萬行,是1.2秒與6秒 )。

如果我想擁有整潔的功能並且仍然受益於速度,該怎么辦?

有什么問題:

def fun():
    return params.a * params.b * df.A/1000 - param.C * (df.B + df.C - df.D) + param.D * df.E

df['F'] = fun()

因此,您將獲得可重用的矢量化函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM