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

如何在pandas中将多个Series合并为各列对应Series名称的DataFrame

问题原因

  1. 直接调用pd.concat(list_data)得到长Series是因为concat默认参数axis=0,执行的是纵向拼接逻辑,把所有Series的行堆叠到一起。
  2. 遍历拼接时报错ValueError: cannot reindex from a duplicate axis是因为你所持有的Series中存在重复的日期索引,拼接时索引对齐逻辑冲突。

解决方法

步骤1:预处理所有Series,处理重复索引并统一索引格式

import pandas as pd

processed_list = []
for s in list_data:
    # 统一把索引转为datetime类型,避免字符串/日期格式不匹配导致对齐错误
    s.index = pd.to_datetime(s.index)
    # 处理重复索引,这里示例保留重复索引的第一个值,可根据需求调整keep参数为'last'或聚合处理
    s = s[~s.index.duplicated(keep='first')]
    processed_list.append(s)

步骤2:按列拼接得到目标DataFrame

result_df = pd.concat(processed_list, axis=1)

拼接时会自动按日期索引对齐,缺失的索引位置自动填充NaN,每个Series的name属性会自动作为对应列的列名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:15:01