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

如何将Pandas Series的日期索引保留至转换后的DataFrame中?

保留日期索引的Series转DataFrame解决方案

方法1:explode + 字典转列(简洁高效)

利用Pandas的explode展开列表元素,再将每个字典转为DataFrame列,最后重置并设置索引:

import pandas as pd

stk = pd.Series([[{'stock': 'AAPL', 'amt': 23}, {'stock': 'DIS', 'amt': 52}],
                 [{'stock': 'IBM', 'amt': 78}, {'stock': 'MSFT', 'amt': 34}]], 
                index=['2023-12-16','2023-12-17'])

# 展开列表 → 字典转列 → 重置索引为dt列 → 设置dt为索引
df = stk.explode().apply(pd.Series).reset_index(names='dt').set_index('dt')
print(df)

输出结果:

stock  amt
dt                   
2023-12-16  AAPL   23
2023-12-16   DIS   52
2023-12-17   IBM   78
2023-12-17  MSFT   34

方法2:循环时手动添加日期索引

在遍历原Series时,给每个子DataFrame添加对应的日期列,再合并:

import pandas as pd

stk = pd.Series([[{'stock': 'AAPL', 'amt': 23}, {'stock': 'DIS', 'amt': 52}],
                 [{'stock': 'IBM', 'amt': 78}, {'stock': 'MSFT', 'amt': 34}]], 
                index=['2023-12-16','2023-12-17'])

df_list = []
# 遍历索引和对应的数据列表
for dt, stock_list in stk.items():
    temp_df = pd.DataFrame(stock_list)
    temp_df['dt'] = dt  # 添加日期列
    df_list.append(temp_df)

# 合并所有子DataFrame并设置dt为索引
df = pd.concat(df_list).set_index('dt')
print(df)

输出与方法1完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:19:52