gpt4 book ai didi

python - 与 numpy 不同,带有 NaN 的 Pandas 系列 np.max 不会将 NaN 显示为最大值

转载 作者:行者123 更新时间:2023-12-04 07:18:01 27 4
gpt4 key购买 nike

data_df[“列名”]

<class 'pandas.core.series.Series'>

0 -475.0
1 -799.0
2 -656.0
3 -444.0
4 -901.0
...
575 NaN
576 NaN
577 NaN
578 NaN
579 NaN


type(data_df["colname"].iloc[579])
<class 'numpy.float64'>

data_df["colname"].iloc[579]
nan
当我使用 np.nan 运行普通数组时,我得到以下信息:
>>> np.max([1,2,3,4,np.float64(np.nan)], initial=1)
nan

>>> np.max([1,2,3,4,np.nan], initial=1)
nan
但是对于 Pandas ,尽管包含 NaN 值:
np.max(data_df["colname"]) 
83.0
它不匹配,这是怎么回事?

此外,虽然 np.amax 有 'initial' 参数:
>>> np.max([1,2,3,4,np.nan], initial=1)
nan
Pandas 它给出了一个错误:
np.max(data_df["colname"], initial=1)


validate_kwargs(fname, kwargs, self.defaults)
File "/Users/-/poetry/virtualenvs/-/lib/python3.9/site-packages/pandas/util/_validators.py", line 153, in validate_kwargs
_check_for_invalid_keys(fname, kwargs, compat_args)
File "/Users/-/poetry/virtualenvs/-/lib/python3.9/site-packages/pandas/util/_validators.py", line 127, in _check_for_invalid_keys
raise TypeError(f"{fname}() got an unexpected keyword argument '{bad_arg}'")
TypeError: max() got an unexpected keyword argument 'initial'
似乎它没有通过 pandas 关键字参数验证。

最佳答案

请注意,您的错误回溯实际上引发了 pandas 中的错误代码。初步验证已转至pandas .

 np.max(data_df['colname'].values, initial=1) 
是纯 numpy 版本。
(稍后我可能会添加详细信息。)
想想 np.max作为与其他行为类似的原始版本 numpy ufunc . np.nanmaxnanfunctions.py 中的众多附加组件之一.这里它取代了 nan-inf .并且只适用于 float 。 pandas用户遇到丢失数据的情况比较多,所以它的开发者增加了铃声,额外的 nan处理确实需要时间。

关于python - 与 numpy 不同,带有 NaN 的 Pandas 系列 np.max 不会将 NaN 显示为最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68675911/

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