顽皮的结果与熊猫和缺失的值不一致

意志

numpy与使用以下方式访问系列值相比,为什么使用Pandas系列时返回带有缺失值的不同结果:

import pandas as pd
import numpy as np

data = pd.DataFrame(dict(a=[1, 2, 3, np.nan, np.nan, 6]))
np.sum(data['a'])

#12.0

np.sum(data['a'].values)
#nan
cs95

调用np.sumpandas Series委托给Series.sum,在计算总和时(按默认值),它将忽略NaN。

data['a'].sum()
# 12.0

np.sum(data['a'])
# 12.0

您可以从以下源代码中看到这一点np.sum

np.sum??

def sum(a, axis=None, dtype=None, out=None, keepdims=np._NoValue, initial=np._NoValue):
    ...
    return _wrapreduction(a, np.add, 'sum', axis, dtype, out, keepdims=keepdims,

看一下的源代码_wrapreduction,我们看到:

np.core.fromnumeric._wrapreduction??

def _wrapreduction(obj, ufunc, method, axis, dtype, out, **kwargs):
    ...
    if type(obj) is not mu.ndarray:
        try:
            reduction = getattr(obj, method)   # get reference to Series.add 

reduction 然后最后在函数结尾处调用:

            return reduction(axis=axis, out=out, **passkwargs)           

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章