[英]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.crosstab
, pivot
也可以實現這一點:-)
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.