【发布时间】:2017-12-15 22:15:09
【问题描述】:
我正在尝试通过将包含索引和数据对的字典传递给 Pandas 系列来构建它。这样做时,我注意到一个有趣的怪癖。当字典包含带有关联值的 NaN 键时,pandas Series 会在索引中保留 NaN 键,但也会将相应的值设置为 NaN。
import pandas as pd
d = {np.nan: 3500.0, 66485174.0: 1.0}
d = pd.Series(d, dtype='float64')
在上面的示例中,3500.0 将被 pd.Series 设置为 NaN。
我将 pandas 0.20.2 与 python 2.7 一起使用。
有人知道为什么会这样吗?我的直觉是NaN 可能被视为超过 64 位的无限数,因此可能存在一些格式问题
【问题讨论】:
-
不确定行为。但是,
pd.Series(d.values(), index=d.keys())会为你工作。 -
这很有趣!我不怀疑这是故意的。确认@JohnGalt,但我使用了
pd.Series(list(d.values()), index=d.keys()) -
感谢您的反馈。是的,这很奇怪。另外,pd.DataFrame函数也不存在同样的问题:pd.DataFrame.from_dict(d, orient='index',dtype='float64')
-
在 pandas 0.23.3 中绝对固定。
标签: python python-2.7 pandas dictionary series