Python 用“中的平均值”更新零值;";熊猫的相邻网格
我有一个txt文件,作为数据帧读取。对于某个Python 用“中的平均值”更新零值;";熊猫的相邻网格,python,pandas,Python,Pandas,我有一个txt文件,作为数据帧读取。对于某个SchoolID内的每个ClassID,我需要查看所有特征(即列F_1到F_7),并用每个列内相邻网格的n平均值替换每个零值。在做了一些研究并阅读了类似的帖子之后,比如,和,这就是我想到的: import pandas as pd data = pd.read_csv('School_Data.txt', error_bad_lines=False) groups = data['SchoolID'].unique() features = [2
SchoolID
内的每个ClassID
,我需要查看所有特征(即列F_1
到F_7
),并用每个列内相邻网格的n
平均值替换每个零值。在做了一些研究并阅读了类似的帖子之后,比如,和,这就是我想到的:
import pandas as pd
data = pd.read_csv('School_Data.txt', error_bad_lines=False)
groups = data['SchoolID'].unique()
features = [2,8]
output = []
for i in groups:
for j in features:
output=data.mask(data==0).fillna(data.mean())
问题是计算的是整个列的平均值,而不是每个SchoolID
(为了解决这个问题,我尝试了output=data[I].mask(data[I]=0).fillna(data[I].mean())
,但我得到了一个错误)。此外,我需要定义搜索半径n
,以计算那些n
相邻网格的平均值(例如,每个零值上方和下方的3行,当然在SchoolID
内)。我还需要确保,一旦一个零值被更新,这个更新的值将不会用于计算其他零值的平均值
我将非常感谢您的帮助