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

如何将基金NAV数据从长表转宽表并填充至新Pandas DataFrame?

填充基金NAV数据到宽格式DataFrame的方法

嘿,你已经搭好空的宽格式DataFrame框架了,接下来填充数据不用手动循环一个个搞,用Pandas的内置方法就能高效搞定:

方法一:直接从原数据生成宽表再补全日期序列

其实你可以跳过先创建空DataFrame的步骤,直接把原长格式数据转成宽格式,再扩展到完整日期范围,流程更简洁:

# 第一步:确保原数据的date列是datetime类型,避免索引匹配出错
df['date'] = pd.to_datetime(df['date'])

# 第二步:将原数据转成宽格式(日期为索引,基金代码为列)
wide_format_df = df.pivot(
    index='date',
    columns='fund code',
    values='NAV'
)

# 第三步:扩展到你需要的完整日期序列,缺失值自动用NaN填充
days = pd.date_range(df['date'].min(), df['date'].max(), freq='D')
final_df = wide_format_df.reindex(days)

方法二:填充你已创建的Newdf

如果你想基于已经建好的Newdf来填充,也可以这么操作:

# 先统一日期类型,确保索引匹配
df['date'] = pd.to_datetime(df['date'])

# 把原数据设置为(date, fund code)的多级索引,方便精准定位NAV值
df_multi_index = df.set_index(['date', 'fund code'])['NAV']

# 将多级索引数据展开为宽格式,再匹配Newdf的日期索引完成填充
Newdf = df_multi_index.unstack().reindex(Newdf.index)

逻辑说明

  • set_index(['date', 'fund code']) 让每一个NAV值都绑定到「日期+基金」的唯一位置上
  • unstack() 把复合索引转成你需要的宽格式结构(日期为行,基金为列)
  • reindex(Newdf.index) 把数据扩展到你之前定义的完整日期序列,缺失的日期/基金对应的位置会自动填充NaN,正好对应你示例里的...

这样处理后,你的Newdf就会完全符合预期:每一行是日期,每一列是基金,对应单元格填充好NAV数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:35:42