python - 如何用 numpy 数组的列的平均值填充 nan 值?

标签 python pandas numpy

我将 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.]]

关于python - 如何用 numpy 数组的列的平均值填充 nan 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69231756/

相关文章:

python - 使用应用于列/系列的函数子集 Pandas 数据框

python - 使用 scrapy 进行网页抓取论坛不会产​​生下一页

python - pylucene 与 python 3

python - Pandas 重新索引数据框问题

python - Numpy 数组到 csv

python - 从 Numpy 中的 2 个向量形成矩阵,重复 1 个向量

python - numpy fft 中的意外振幅

python - WxPython wxSplitterWindow.SplitVertically 总是显示不均匀分割

python - 只有字典的最新值被添加到列表中

Python、Pandas 匹配数据框并指示列表中的结果