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

Pandas将Series组合为DataFrame时行列维度与预期不符疑问

问题解答:Pandas用Series列表生成DataFrame的维度问题
import pandas as pd 

S1 = pd.Series([1, 2, 3, 4], index = ['a', 'b','c','d']) 
S2 = pd.Series([11, 22, 33, 44], index = ['a', 'bb','c','dd']) 
D1 = pd.DataFrame([S1,S2])

你得到2行6列的结果,是Pandas构造DataFrame时的默认规则决定的:

  • 当你向pd.DataFrame()传入元素为Series的列表时,列表中的每一个Series会被视作DataFrame的一行,而非一列
  • 每个Series自带的索引,会被用作DataFrame的列名,Pandas会自动取所有Series索引的并集作为最终的列索引,匹配不到值的位置会填充NaN

实际运行print(D1)的输出可以验证这个规则:

a    b    bb   c    d    dd
0  1.0  2.0   NaN   3  4.0   NaN
1 11.0  NaN  22.0  33  NaN  44.0

可以看到2行的行索引默认是0、1,分别对应S1、S2,6列是两个Series索引的去重并集。

如果需要得到你预期的2列6行的结果,使用pd.concat()方法并指定拼接轴向为列(axis=1)即可:

# 得到2列6行的结果
D2 = pd.concat([S1, S2], axis=1)

运行后print(D2)的输出符合你的预期:

0     1
a   1.0  11.0
b   2.0   NaN
bb  NaN  22.0
c   3.0  33.0
d   4.0   NaN
dd  NaN  44.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:27:04