欠落しているデータ ポイントをテキストの各列の平均値に置き換えたいと思います。
だから、私の考えは:
- テキスト ファイルから各列を読み取る
- 各列の平均を計算する
- 各列の 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)
ご覧のとおり、ここでの問題は、文字列のみを扱っているため、「replace」コマンドで nan を mean に置き換えることに関連しています。助けや提案があれば本当に感謝します。私のデータの一部は以下のようになります
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
これらのナンを各列の平均値に置き換えたいと思います。