簡體   English   中英

Pandas / Python:帶有函數字典的 Groupby.apply()

[英]Pandas / Python: Groupby.apply() with function dictionary

我正在嘗試實現這樣的事情:

def RR(x):
    x['A'] = x['A'] +1
    return x

def Locked(x):
    x['A'] = x['A'] + 2
    return x

func_mapper = {"RR": RR,  "Locked": Locked}
df = pd.DataFrame({'A':[1,1], 'LookupVal':['RR','Locked'],'ID':[1,2]})

df= df.groupby("ID").apply(lambda x: func_mapper[x.LookupVal.first()](x))

A 列的輸出為 2、6

其中x.LookupVal是一列字符串(它在每個groupby("ID")中具有相同的值),我想將其作為字典查找的鍵傳遞。

任何建議如何實施?

謝謝!

first不是你想的那樣。 它用於時間序列數據,它需要一個偏移參數。 我認為您首先誤認為 groupby

您可以使用iloc[0]獲取第一個值:

slice_b.groupby("ID").apply(lambda x: func_mapper[x.LookupVal.iloc[0]](x))

暫無
暫無

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

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