首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用南的熊猫系列制作套装

用南的熊猫系列制作套装
EN

Stack Overflow用户
提问于 2018-07-18 11:20:32
回答 1查看 593关注 0票数 1

我用熊猫来清理一些数据文件和验证内容。在验证中,我将每一列的内容与一组期望值进行比较。

代码语言:javascript
复制
for col_name, expected in expected_dict.items():
    col_values = set(df[col_name])
    if not col_values.issubset(expected):
        raise ValueError(str(col_values - expected),'in',col_name)

我在NaN上遇到了一些意想不到的行为,具体来说,set(series)将每个NaN作为一个唯一的元素。我想出了一个解决方案,那就是set(series.unique())

代码语言:javascript
复制
s = pd.Series([1,2,1,None,3,None])
set(s) ## Produces {nan, 1.0, 2.0, 3.0, nan}
set(s.unique()) ## Produces {nan, 1.0, 2.0, 3.0}

我的问题是,为什么会遇到这种行为呢?我怀疑这与南在熊猫中的表现有关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-18 11:27:58

NaN的一个属性是NaN != NaN,与所有其他数字不同。但是,set first的实现在尝试插入新成员之前先检查id(x)是否与哈希索引中的现有成员匹配。如果有两个具有不同in的对象,它们都具有NaN值,那么您将在集合中获得两个条目。如果它们都有相同的id,它们就会折叠成一个条目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51400727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档