如何处理要<NA>汇总的数字系列/列表中的熊猫值



我的问题集中在熊猫的方式上。在这种情况下,熊猫的行为是固定的吗?

我有一张数字清单,想把它们汇总一下。我可以用sum()或简单地用+运算符来做这件事。关键是,有时在这样的列表中有一个<NA>。当结果总是<NA>时,这对我来说没问题。

当然,我可以用if val is pandas.NA显式地检查每个元素。但我希望有一个更好但又省钱的方法。

这是一个MWE产生两种不同的结果。使用+会产生预期的<NA>。但.sum()只是忽略了列表中的<NA>,并给出了一个具体的数字作为结果。

#!/usr/bin/env python3
import pandas as pd
# 1.2.5 and 1.3.2
print(pd.__version__)
df = pd.DataFrame(data={'VAR': [pd.NA], 'X': [2]})
a = df.VAR + df.X
print(a)  # <NA>
b = df.iloc[0].sum()
print(b)  # 2

您需要将skipna=False传递给sum,因为默认情况下它是True

>>> df.iloc[0].sum(skipna=False)
<NA>

最新更新