python-3.x - sum 函数如何与 NaN 元素一起使用?
问题描述
我有一个带有一些 NaN 值的 DataFrame。在这个 DataFrame 中有一些行包含所有 NaN 值。当我对这些行应用 sum 函数时,它返回零而不是 NaN。代码如下:
df = pd.DataFrame(np.random.randint(10,60,size=(5,3)),
index = ['a','c','e','f','h'],
columns = ['One','Two','Three'])
df = df.reindex(index=['a','b','c','d','e','f','g','h'])
print(df.loc['b'].sum())
有什么建议吗?
解决方案
sum函数取NaN值为0。
如果希望 NaN 值之和的结果为 NaN:
df.loc['b'].sum(min_count=1)
输出:
nan
如果您应用到所有行(使用重新索引后),您将获得以下信息:
df.sum(axis=1,min_count=1)
a 137.0
b NaN
c 79.0
d NaN
e 132.0
f 95.0
g NaN
h 81.0
dtype: float64
如果您现在修改行的 NaN 值:
df.at['b','One']=0
print(df)
One Two Three
a 54.0 20.0 29.0
b 0.0 NaN NaN
c 13.0 24.0 27.0
d NaN NaN NaN
e 28.0 53.0 25.0
f 46.0 55.0 50.0
g NaN NaN NaN
h 47.0 26.0 48.0
df.sum(axis=1,min_count=1)
a 103.0
b 0.0
c 64.0
d NaN
e 106.0
f 151.0
g NaN
h 121.0
dtype: float64
正如你现在看到的那样,b 行的结果是 0
推荐阅读
- mysql - 具有多个完全连接的 MySQL 查询
- html - primeNg v4.3.0 是否可以拉出左右两部分并调整大小的布局?
- r - 光栅化 Spdep 的 localG 输出
- javascript - 试图为我的编码测验编写一个检查答案,但它不能正常工作,我错过了什么?
- arrays - tflite 对象检测推理无法正常工作
- gmail-addons - G Suite 中有哪些不同的插件类型?
- java - Scala 在使用 Lift Web 提取 json 值时抛出错误
- python - 我需要从 python 中 Colebrook 方程的近似值中输入摩擦系数
- linux - 仅在某些子目录中查找
- c# - ASP.NET Core 3.1 OData PageResult 序列化