pandas将groupby值转换为列名

2024-05-07 23:29:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas表,其中我有许多贷款到期年(可以在任何给定年份有多个贷款)、贷款名义和贷款类型(固定利率/浮动利率)。在

我想将公司的债务塔提取到a dataframe表中,如下所示:

年份,固定日期,浮动日期
2018年,sumofallfixed loans,sumofallfloatloans for the给定年份。在

到期年类型名义(MM)
0 2020固定600.0
2021年固定750.0
2021年浮动250.0
3 2025年固定700.0

转换为
年,固定,浮动
2020年,600年,0
2021750250
2025年700,0

我怎么能和熊猫一起玩呢?在

非常感谢, 托尼


Tags: the类型dataframepandasfor公司mm年份
3条回答

似乎您需要^{}和聚合sum,最后由unstack整形:

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

这里有一个支点解决方案,即

df.pivot(index='Year',columns='Type',values='Notional(MM)').fillna(0)
^{pr2}$

如有需要,总额

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

通过使用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

相关问题 更多 >