使用pd.Index对象列表创建Pandas Series时触发ValueError问题咨询
Pandas Series创建时ValueError的预期行为说明
这是预期且符合文档规范的行为,原因如下:
- Pandas的
pd.Series构造函数要求传入的index参数,要么是一维的索引标签序列,要么是可转换为一维索引的对象。当传入由多个pd.Index对象组成的列表时,Pandas会尝试将其转换为MultiIndex(多级索引)。 - 在你使用的Pandas 1.4.x/1.5.x版本中,
[pd.Index([1]), pd.Index([2])]会被解析为包含两个层级的MultiIndex,每个层级仅1个元素,最终生成的索引总长度为1(两个层级元素的笛卡尔积:1×1=1)。 - 而你的
data参数长度为2,与索引长度1不匹配,因此触发ValueError。
如果想要创建以1、2为标签的Series,正确写法如下:
# 直接传入一维标签序列 pd.Series(["a", "b"], index=[1, 2]) # 或合并为单一一维索引后传入 indexes = pd.Index([1, 2]) pd.Series(["a", "b"], index=indexes)
内容的提问来源于stack exchange,提问作者Luke Roberts
相关产品推荐
相关产品推荐

