我希望使用Python将文本中每列缺失数据点替换为该列的均值。
我的想法是:
1.从文本文件中读取每一列 2.计算每列的平均值 3.用每列的计算平均值替换nan 4.将结果写回新的文本文件
我认为我能够完成前两个步骤,但在第三和第四步遇到了困难。以下是我的代码:
我的想法是:
1.从文本文件中读取每一列 2.计算每列的平均值 3.用每列的计算平均值替换nan 4.将结果写回新的文本文件
我认为我能够完成前两个步骤,但在第三和第四步遇到了困难。以下是我的代码:
for columns in ( raw.strip().split() for raw in f ):
a.append(columns[c])
x = np.array(a, float)
y = np.ma.masked_array(x,np.isnan(x))
y1 = np.mean(y)
a1 = ' '.join(a)
a1.replace("nan", "y1")
f1 = open("practice.txt", "w")
f1.write(a1)
正如您所看到的,这里的问题涉及使用“替换”命令将nan替换为平均值,因为它只处理字符串。我将非常感谢任何帮助或建议。我的部分数据如下:
1.60566 nan 2.00755 2.32407
1.502 nan 1.36522 1.555
0.63333 nan 1.56102 2.08929
nan nan 0.87451 1.06667
2.5 nan 1.88889 1.0661
3.88197 nan 3.0875 2.75909
4.02692 nan 3.36154 3.92895
5.9907 nan 5.29535 5.82245
6.16111 2.67317 6.04074 6.25588
6.88269 2.62241 5.43958 6.07
5.92 2.48627 5.91818 6.75862
6.93429 6.17333 7.34 7.76538
8.25143 7.925 7.8087 8.725
8.1025 8.19429 8.11563 8.80937
8.12105 8.145 7.83889 8.37576
7.47292 8.65 8.35536 8.61081
8.10392 8.66032 8.74082 9.65484
10.03036 10.74727 10.634 10.50961
我希望能够用每一列的均值替换那些NaN值。