gpt4 book ai didi

python - 通过 Pandas 中的函数替换 NaN 时索引超出范围

转载 作者:行者123 更新时间:2023-11-28 20:38:10 25 4
gpt4 key购买 nike

我创建了一个函数,用相应列的方法替换 Pandas 数据框中的 NaN。我用一个小的数据框测试了这个函数,它起作用了。当我将它应用于更大的数据框(30,000 行,9 列)时,我收到错误消息:IndexError: index out of bounds

函数如下:

# The 'update' function will replace all the NaNs in a dataframe with the mean of the respective columns

def update(df): # the function takes one argument, the dataframe that will be updated
ncol = df.shape[1] # number of columns in the dataframe
for i in range(0 , ncol): # loops over all the columns
df.iloc[:,i][df.isnull().iloc[:, i]]=df.mean()[i] # subsets the df using the isnull() method, extracting the positions
# in each column where the
return(df)

我用来测试功能的小数据框如下:

     0   1   2  3
0 NaN NaN 3 4
1 NaN NaN 7 8
2 9.0 10.0 11 12

你能解释一下这个错误吗?我们将不胜感激您的建议。

最佳答案

我会使用 DataFrame.fillna()方法结合 DataFrame.mean()方法:

In [130]: df.fillna(df.mean())
Out[130]:
0 1 2 3
0 9.0 10.0 3 4
1 9.0 10.0 7 8
2 9.0 10.0 11 12

平均值:

In [138]: df.mean()
Out[138]:
0 9.0
1 10.0
2 7.0
3 8.0
dtype: float64

关于python - 通过 Pandas 中的函数替换 NaN 时索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41496879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com