用熊猫中“ n”个相邻邻居网格的平均值更新零值

时间:2020-10-28 07:12:28

标签: python pandas

我有一个txt文件here,我正在将其作为熊猫数据框读取。对于某个ClassID中的每个SchoolID,我需要查看所有功能(即列F_1F_7),并将每个零值替换为的平均值每列中的n个相邻网格。经过研究并阅读了类似的帖子,例如hereherehere之后,我得出了以下结论:

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个相邻网格的平均值(例如,SchoolID中每个零值上方和下方的3行)。我还需要确保一旦更新了零值,此更新后的值就不会用于计算其他零值的平均值。

在此方面,我将不胜感激。

0 个答案:

没有答案