为何用字典初始化pandas Series指定索引后返回全NaN?
问题原因解释
当你用字典初始化pandas.Series时,字典的键默认会成为Series的索引。如果额外指定了index参数,pandas会按以下逻辑处理:
- 逐个遍历你指定的索引值,尝试在字典的键中找到匹配项
- 找到匹配的键,就填入对应的值;找不到匹配项,就用
NaN填充
你的代码里,字典的键是'Wally'、'Eva'、'Sam',但指定的索引是['a', 'b', 'c'],两者完全没有交集,所以每个索引位置都找不到对应的值,最终输出全为NaN。
举个验证例子:如果把指定索引改成包含字典里的键,比如index=['Wally', 'Eva', 'd'],输出就会是:
Wally 87.0 Eva 100.0 d NaN dtype: float64
能看到匹配到的键对应正常数值,未匹配的索引则显示NaN。
内容的提问来源于stack exchange,提问作者shaghayegh nikfard
相关产品推荐
相关产品推荐

