Python 字典新索引返回 NaN 值

时间:2021-01-26 06:45:37

标签: python pandas

我是 Python 新手,刚开始学习 Pandas。

我创建了一个字典并想更改索引。

但是,新索引显示所有值的 NaN,我预计分别为 3,5,8,-2。

我在这里附上了我的代码供您参考:

states = ['place1','place2','place3','place4']

sdata = dict(a=3,b=5,c=8,d=-2)

obj4 = pd.Series(sdata, index=states)
print(obj4)

place1   NaN
place2   NaN
place3   NaN
place4   NaN
dtype: float64

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

当你用字典创建系列时,键被当作索引,值就是值。所以,

pd.Series(sdata)

会给你:

a    3
b    5
c    8
d   -2
dtype: int64

现在,如果另外将 index 传递给 pd.Series(some_dict),它相当于一个 reindex

pd.Series(sdata).reindex(states)

并且由于 states 不包含 sdata 中的任何键,因此您会得到一个由 states 索引并包含所有 NaN 的系列。

如果您确定订单,您可以使用以下命令创建系列:

pd.Series(list(sdata.values()), index=states)

输出:

place1    3
place2    5
place3    8
place4   -2
dtype: int64