gpt4 book ai didi

python - Pandas 的 pd.NA 与 np.nan

转载 作者:行者123 更新时间:2023-12-02 02:19:09 27 4
gpt4 key购买 nike

Pandas 的

pd.NAnp.nan 。哪一个与 pandas 一起使用以及为什么使用?它们与 pandas 的主要优点和缺点是什么?

一些使用它们的示例代码:

import pandas as pd
import numpy as np

df = pd.DataFrame({ 'object': ['a', 'b', 'c',pd.NA],
'numeric': [1, 2, np.nan , 4],
'categorical': pd.Categorical(['d', np.nan,'f', 'g'])
})

输出:

|    | object   |   numeric | categorical   |
|---:|:---------|----------:|:--------------|
| 0 | a | 1 | d |
| 1 | b | 2 | nan |
| 2 | c | nan | f |
| 3 | <NA> | 4 | g |

最佳答案

截至目前(发布 pandas-1.0.0 )我真的建议谨慎使用它。

首先,它仍然是一个实验功能:

Experimental: the behaviour of pd.NA can still change without warning.

其次,行为与np.nan不同:

Compared to np.nan, pd.NA behaves differently in certain operations. In addition to arithmetic operations, pd.NA also propagates as “missing” or “unknown” in comparison operations.

两个配额均来自 release-notes

为了展示一些额外的例子,我对插值行为感到惊讶:

创建简单的数据框:

df = pd.DataFrame({"a": [0, pd.NA, 2], "b": [0, np.nan, 2]})
df
# a b
# 0 0 0.0
# 1 <NA> NaN
# 2 2 2.0

并尝试插值:

df.interpolate()
# a b
# 0 0 0.0
# 1 <NA> 1.0
# 2 2 2.0

这有一些原因(我仍在发现),无论如何,我只是想强调这些差异 - 这是一个实验性功能,在某些情况下表现不同

我认为这将是非常有用的功能,但我会非常小心地对待诸如“使用它而不是np.nan”之类的语句。在大多数情况下这可能是正确的,但当您没有意识到时可能会造成一些麻烦。

关于python - Pandas 的 pd.NA 与 np.nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60115806/

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