You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中调整DataFrame形状?附代码及目标输出需求

解决DataFrame形状调整问题

你的DataFrame中Date列的缺失值对应同周期的Interest条目,我们可以通过填充缺失值+透视表重组的方式,将数据转换为日期为行、利息/本金为列的结构,具体操作如下:

步骤1:填充缺失的日期值

每个Interest对应的日期就是下一行Principal的日期,用bfill()方法向下填充缺失值:

df['Date'] = df['Date'].bfill()

步骤2:透视表重组结构

用pivot()方法将Cftype的不同取值转为列,Date作为行索引,CF作为对应值:

result_df = df.pivot(index='Date', columns='Cftype', values='CF').reset_index()
result_df.columns.name = None  # 移除列名的层级标记

完整可运行代码

import pandas as pd
import numpy as np

df = pd.DataFrame({'Date' : [np.nan, '2035-12-31', np.nan, '2036-12-31',np.nan, '2037-12-31',np.nan, '2038-12-31'],
                   'Cftype': ["Interest", "Principal", "Interest", "Principal","Interest", "Principal", "Interest", "Principal"],
                   'CF': [12,23,34,89,45,4,54,78]
})

# 填充缺失日期
df['Date'] = df['Date'].bfill()
# 重组数据结构
result_df = df.pivot(index='Date', columns='Cftype', values='CF').reset_index()
result_df.columns.name = None

print(result_df)

最终输出结果

Date  Interest  Principal
0  2035-12-31        12         23
1  2036-12-31        34         89
2  2037-12-31        45          4
3  2038-12-31        54         78

如果你的目标输出结构和上述不同,可以补充具体格式要求,再调整处理方案。

内容的提问来源于stack exchange,提问作者TRex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 02:05:06