我的问题集中在熊猫的方式上。在这种情况下,熊猫的行为是固定的吗?
我有一张数字清单,想把它们汇总一下。我可以用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>