我想用python中的每一列代替丢失的数据点。用平均值代替nan
所以,我的想法是:
- 阅读从文本文件中的每一列
- 计算各列
- 在每列与计算的平均替换楠的平均
- 把它们写回新的文本文件
我认为我可以直到第2步,但是我对第3步和第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)
正如你可以看到,这里的问题是关系到均值与“替换”命令替换楠,因为它是只处理字符串。 我会很感激任何帮助或建议。 我的数据的部分看起来像下面
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的。
A1是在你的代码串 – Antimony 2013-04-09 21:41:37
能告诉你一个很小的数据文件来请解析一下? – chespinoza 2013-04-09 21:43:14
是的,你是对的锑。 – Isaac 2013-04-09 21:44:28