我将 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/