MATHGRAM

主に数学とプログラミング、時々趣味について。

python:データ処理tips その1 数字で整理されたファイルを順番に読み込む。(辞書を使った組み合わせ)

テストあと一つだ。。。
眠いから久しぶりに記事まとめて気分転換しようってことで。
組み合わせの作り方について簡単にまとめます。

たくさんデータを順番に読み込みたい時、tsvやcsvファイルが、

result1_1.csv    result2_1.csv
result1_2.csv    result2_2.csv
result1_3.csv    result2_3.csv

のようにまとめられていることはよくあります。

こんなデータを一気にfor文で読み込みたい時は次のように辞書型を使ってみましょう。

#-*- coding:utf-8 -*-

iList = range(1,6)
#こんな風にリストを作れば、飛び飛びの数字も表現可能です
jList = [1,5,10]

#for文を繰り返して使います。
i_j_dict = ({"i":i,"j":j} for i in iList for j in jList)

for i_j_list in i_j_dict:

    #formatは辞書型を引数に取れないので、**で展開する必要があります。
    print("result{i}_{j}.csv".format(**i_j_list))
    

とりあえず、printするだけ。
出力結果はこんな感じです。

result1_1.csv
result1_5.csv
result1_10.csv
result2_1.csv
result2_5.csv
result2_10.csv
result3_1.csv
result3_5.csv
result3_10.csv
result4_1.csv
result4_5.csv
result4_10.csv
result5_1.csv
result5_5.csv
result5_10.csv

例えば、温度を1度、5度、10度で行う実験を5回繰り返した場合、
上記のように結果をまとめることは多いはず。
好きな数字で組み合わせが作れるこのやり方は、柔軟性があって結構使えると思います。

また辞書型を使わずとも、forを重ねることでΣΣの計算などの応用ができますね。

今度は"result00_10.tsv"など桁数が固定されて整理されたファイルの読み込みをまとめます。考え方は一緒だけどね。
それでは!

p.s. やっぱ眠い