gpt4 book ai didi

python - Numpy 与 Pandas 不一致的结果和缺失值

转载 作者:太空狗 更新时间:2023-10-30 01:04:18 33 4
gpt4 key购买 nike

为什么 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

最佳答案

在 pandas Series 上调用 np.sum 委托(delegate)给 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)           

关于python - Numpy 与 Pandas 不一致的结果和缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55130026/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com