python - 如何用列的平均值填充 numpy 数组 nan 值?
问题描述
我将 pandas 数据框的一部分转换为 numpy 数组,我想用列的平均值填充它的值,类似于我在 pandas 中执行以下操作的方式:
df.fillna(df.mean(), inplace = True)
到目前为止,我能够做到的唯一方法是遍历列。还有其他方法吗?
谢谢你!
解决方案
你可以np.where
像下面这样使用:
df = pd.DataFrame({'A': [2, 1, np.nan, 6], 'B': [4, np.nan, 8, np.nan]})
a = df.to_numpy()
print(a)
# [[ 2. 4.]
# [ 1. nan]
# [nan 8.]
# [ 6. nan]]
a = np.where(np.isnan(a), np.nanmean(a, axis=0), a)
print(a)
输出:
[[2. 4.]
[1. 6.]
[3. 8.]
[6. 6.]]
推荐阅读
- html - 如何将 flexbox 导航栏向右对齐?
- python - 如何结束没有返回的python子进程?
- python - 在 Python/Pandas 中按字母显示 csv 文件迭代的进度
- python - 基于具有多列输入的函数创建布尔掩码
- spring-boot - 如何对具有 Mono 返回类型的方法进行 junit 测试
- python - Cache only a single step in sklearn's Pipeline
- vue.js - Vue 3 在 setup() 中渲染 vnodes 数组
- powerbi - 关于power bi中的内存模式工作逻辑
- sql-server - GitHub Action - 无法连接到 SQL Server
- c# - 如何在 C# 中的循环内执行 postasync 操作