[英]Pandas use groupby to apply a different function for each value of the groupby variable
我想使用groupby,但是我不想指定將相同的功能應用於每個組,而是要指定將哪個功能應用於哪個組值。 我在這里提供了一個非常簡單的示例來說明這一點,但實際上我的groupby變量有很多值,而且我的函數都是用戶定義的並且相當復雜-因此,解決方案涉及分別選擇每個組或應用對所有小組都使用相同的功能將是不切實際的。 (這種回答方式被提供給了這個非常相似的問題: 如何將不同的功能應用於每組大熊貓groupby?但是它們沒有解決我的問題)
df = DataFrame({'Category': ['A','A','A','B','B','B','C','C','C'],
'Total': [1, 2, 3, 1, 2, 3, 1, 2, 3]})
我希望能夠為groupby變量的每個級別指定一個函數:
function_map = {'A': np.mean,
'B': np.max,
'C': np.min}
我想做的是這樣的:
df.groupby('Category').apply(function_map)
我想要的結果形式將類似於以下DataFrame:
result = DataFrame({'Category': ['A','B','C'],
'Total': [2, 3, 1]})
只是使用lambda,像這樣
df.groupby('Category').apply(lambda r: function_map[r.name](r.Total))
另外,您應該使用numpy
函數,因此np.mean
, np.max
, np.min
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.