簡體   English   中英

熊貓將groupby值轉換為列名

[英]pandas convert groupby values to column names

我有一個pandas表,其中有很多行與貸款到期年(在任何給定年份可以有多個貸款),貸款概念和貸款類型(固定利率/浮動利率)相關。

我想將公司的債務塔提取到如下數據框表中:

年,固定利率,浮動利率
2018年,給定年份的sumofallfixed貸款,sumofallfloatloans。

到期年份類型名義(MM)
0 2020固定600.0
1 2021固定750.0
2 2021年浮動250.0
3 2025固定700.0

轉換成
年份,固定,浮動
2020,600,0
2021、750、250
2025 700,0

我該如何用熊貓呢?

非常感謝,托尼

似乎您需要groupby和聚合sum ,最后通過unstack重塑:

df = df.groupby(['Year', 'LoanType'])['loan notional'].sum().unstack()

通過使用pd.crosstabpivot也可以實現這一點:-)

pd.crosstab(index =df['MaturityYear'],columns =df['Type'],values =df['Notional'],aggfunc=np.sum).fillna(0)
Out[877]: 
Type          FIXED  FLOATING
MaturityYear                 
2020          600.0       0.0
2021          750.0     250.0
2025          700.0       0.0

這是一個關鍵的解決方案,即

df.pivot(index='Year',columns='Type',values='Notional(MM)').fillna(0)
Type  FIXED  FLOATING
Year                 
2020  600.0       0.0
2021  750.0     250.0
2025  700.0       0.0

如果需要總和,即

df.pivot_table(index='Year',columns='Type',values='Notional(MM)',aggfunc='sum').fillna(0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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