【发布时间】:2022-12-20 04:28:22
【问题描述】:
import pandas as pd
import numpy as np
a = {np.nan: -1, None: 1}
看看a:
{nan: -1, None: 1}
如果我们将它从 Series 转换回 dict:
pd.Series(a).to_dict()
我们看:
{nan: -1, nan: 1}
熊猫怎么能用两个来创建字典相同的钥匙?好吧,我想它们实际上并不相同,因为 np.nan == np.nan 的计算结果为 False。但我无法使用以下方法手动创建它:
b = {np.nan: -1, np.nan: 1}
如果我们看一下b,它会给出:
{nan: 1}
我正在努力解决这个问题,也许我错过了一些明显的事情?
有关完整代码 sn-p,请参见图片
这也表明我可以继续将键 np.nan 添加到从 pandas 系列 to_dcit 生成的字典中,但不是我手动创建的
【问题讨论】:
-
to_dict使用的键是float("nan"),显然你可以用多个float("nan")键创建一个字典(试试d = {float("nan"): 1, float("nan"):2}),但将无法访问它们。因此,查看float("nan")内部结构似乎是正确的。