前提・実現したいこと
現在pythonを用いてデータの分析を行っています。今回、自分では難しくてコードを書くのにつまってしまう事態が発生したので質問させていただきます(調べたりしたのですがどうにも無理でした、、)
あるファイル(大量のデータ)を読み込み、いくつかの項目に着目し、ランキング付けして別のファイルに書き込むということを行いたいです。
発生している問題・エラーメッセージ
いくつもの項目を同時にみるというコードの書き方ができずに、1つの項目のみにしか着目できませんでした。ここからの改善点をおしえていただきたいです。
(読み込むファイル)
1 2 3 4 5
123/t 12345/t 4786/t 1564/t 7045
145/t 12349/t 4786/t 1567/t 7896
149/t 12351/t 4790/t 1546/t 8967
186/t 12356/t 4786/t 1589/t 8564
123/t 12378/t 4790/t 1544/t 8496
このようにタブ区切りで5つの項目が並べられているファイルがあります(データ数多い)
これを順番にみていきます。
1項目目をIDとします。
まず、1列目の3項目目に着目し、他の列の3項目目と比較し、同じものがあればそれらの4項目目を比較します。1列目の4項目目を基準に比較してそれより他が大きければその列のIDを+1,小さいもしくは同じならばそのままにします。
これをすべての列に対して行いたいです。
最後は数値が多い順にランク付けします。
つまり書き出すコードとしてはこの場合以下のようにしたいです。
1 123 3
2 145 1
(0回は表示しない)
これは別のファイルに書きたいです。
該当のソースコード
python
1ファイルよみこみ 2 3id_count={} 4lineN = 0 5for line in f(よみこみファイル) 6 inputs = line.split("\t") 7 if len(inputs) != 5 8 continue 9 10 if (id_count.has-key(inputs[1])): 11 id_count[inputs[1]] += 1 12 else: 13 id_count[inputs[1]] = 1 14
このようなソースコードまで書けましたが、これは
私がやりたい項目比較を満たせていません。
パソコンからなぜか質問ができず、スマホから打っているため見ずらかったら申し訳ありません。
質問が分かりにくく申し訳ありません。
ご回答していただければ幸いです。よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー