簡體   English   中英

Pandas - Groupby 重命名列名

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

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