dataframe groupby 自定義聚合函式

2021-10-10 15:35:20 字數 765 閱讀 3524

業務需求,需要對資料聚合之後,按照分組對組內的結果按照自己定義的計算方法聚合

# 讀取原始檔

df1 = pd.read_excel('./test_3.xlsx')

df1.head()

# 自定義聚合函式

def get_total_marks(list1: list):

"""自定義聚合函式:計算規則如下

計算列表的結果: = 最大 + 1/2 * 第二大 + 1/4 * 第三大 + ... + (1/2**(n-1) * 第n大

"""res = 0

list1.sort(reverse=true)

for index, i in enumerate(list1):

res += i * 2**(-index)

return res

# 使用dataframe聚合

df2 = df1.sort_values(["site", "code", "stock_price"],ascending=[true, true, false])

df3 = df2.drop_duplicates(["code", "site"])

df5 = df4.reset_index()

df5.columns = ["code", "total_mark"]

df5

C 中建立SQLServer的自定義聚合函式

1.建立 使用vs2005的 聚合函式 模板建立,實現以下幾個方法 init 給每個要聚合的新組初始化 accumulate 將每個值聚合 merge 將乙個聚合組的結果新增到當前組中 terminate 返回結果 2.部署 通過vs2005部署自動在sqlserver中建立聚合函式 3.使用 在s...

自定義聚合函式

新建database project 新建concatenate class using system using system.data using microsoft.sqlserver.server using system.data.sqltypes using system.io usin...

自定義聚合函式

create or replace type string sum obj as object 聚合函式的實質就是乙個物件 sum string varchar2 4000 static function odciaggregateinitialize v self in out string su...