Iデータの.txtファイル与えられています:与えられた入力ファイルからの列統計?
1,2,3,0,0
1,0,4,5,0
1,1,1,1,1
3,4,5,6,0
1,0,1,0,3
3,3,4,0,0
を私の目的は、列与えられたデータのの最小、最大、平均、範囲、中央値を計算して出力にそれを記述することです.TXTファイル。
ステップ1は次のようにこの質問に近づいての私のロジックがある)
infile = open("Data.txt", "r")
tempLine = infile.readline()
while tempLine:
print(tempLine.split(','))
tempLine = infile.readline()
明らかにそれは完璧ではないですが、アイデアは、データがこれで読み取ることができるということです...
データを読みます手順2)データを対応するリスト変数に格納しますか? ROW1、ROW2、... row6
ステップ3)このような最終的なリストを与え、すべての一つにリストの上にコンバイン...
flist =[[1,2,3,0,0],[1,0,4,5,0],[1,1,1,1,1],[3,4,5,6,0],[1,0,1,0,3],[3,3,4,0,0]]
ステップ4)個別に、forループネストされたアクセス・エレメントを使用し、
col1, col2, col3, ... , col5
リスト変数にそれらを保存するステップ5)私の質問は、ウィスコンシンMIN、MAXなどを計算し、出力ファイルに
を書きます私の初心者のコンピュータサイエンスとPythonに関する知識は、この論理は非効率的であり、この問題を解決するためのより簡単でより良い論理が存在する可能性はありますか?
私の主な問題は、おそらく2から5までの手順です。残りの部分は、どうやって解決するかを知っています。
アドバイスは役に立ちます!
列の数がすべての行で同じ場合、一度に1行ずつファイルを読み取ることで、問題のないすべてのメトリックを段階的に計算できます。各行のデータから個々の変数( 'row1'、' row2'、... 'row5')を作成せずにこれを行うのが最善です。これを行うにはパンダは必要ありません(あるいはPython 3.4で導入された 'statistic'モジュール)。あるいは、ファイルが大きすぎない場合は、そのファイルをすべてメモリに読み込むことができます。これにより、物事を徐々に処理する必要がなくなり、簡単に処理できるようになります。軸ごとに – martineau