[英]Pandas - Groupby rename column name
我正在嘗試重命名 groupBy function 中的新聚合列名稱。
我的代碼:
groupByColumns = ['clientId', 'state', 'branchId']
aggColumn = 'amount'
aggOperation = sum
comNewColName = totalSalesDone
result = df.groupby(groupByColumns)[aggColumn].agg(aggOperation)
這在這里它工作得很好。 現在我正在嘗試重命名聚合的新列:
result = df.groupby(groupByColumns, as_index=False).agg(comNewColName=(aggColumn,aggOperation))
但是我得到列名 comNewColName 但我需要得到 totalSalesDone。
我只想擺脫 "comNewColName = totalSalesDone" result['totalSalesDone'] = df.groupby(groupByColumns, as_index=False).agg(aggColumn,aggOperation))
您正在傳遞sum
,但應該在分組的命名 aggregation中傳遞'sum'
(作為字符串)。 那應該可以解決您的問題。 所以我相信改變:
aggOperation = sum
到:
aggOperation = 'sum'
並做:
result = df.groupby(groupByColumns, as_index=False).agg(comNewColName=(aggColumn,aggOperation))
應該管用。
您可以在命名聚合中解壓字典
這是一個例子:
from seaborn import load_dataset
df_tips = load_dataset('tips')
aggcol = 'total_bill'
newColumnSum='Sum_Total_Bill'
aggop = 'sum'
df_tips.groupby('sex')[[aggcol]].agg(**{f'{newColumnSum}':(f'{aggcol}',f'{aggop}')})
Output:
Sum_Total_Bill
sex
Male 3256.82
Female 1570.95
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.