[英]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.