機械学習のアウトプットとしてプログラムを書いているときに、ランダムなデータのCSVファイルが必要になって、サンプルソースを作ったので記事にしました。
この記事では、「国語」、「数学」、「英語」の三教科のテスト結果をCSVで作成する処理について説明していきます。
対象レベル
Pythonの環境設定が整っており、Pythonの基本構文が理解出来ること。
詳しくは「【Python入門】〜初級編〜環境構築・基本構文まとめ」にまとめてあります。興味のある方はご覧ください。
サンプルソースを読むうえで理解しておきたいこと
基本的にこの章の内容は読み飛ばしてOKです。サンプルソースでわからないところがあれば参照してみてください。
- ファイルの書き込みについて
- 「with open」構文について
- for文の使い方ついて
- ランダムモジュールの使い方
- CSVモジュールについて(工事中)
CSVファイルの作成処理
作成したサンプルファイルはこんな感じです。
処理の解説
まず、初めに「csv」と「random」モジュールをインポートします。
import csvimport random
4行目でファイルを書き込みモード(‘w’)でopenします。ファイル名はなんでもよいですが今回は「test_data.csv」にしています。
with open('test_data.csv', 'w') as f:
5行目では4行目でopenファイルのオブジェクトを「csv.writer」に渡してあげます。これで書き込みが出来る状態になります。
writer = csv.writer(f)
6行目はヘッダー行を作成しています。「writer.writerow()」に配列を渡してあげることでCSVファイルの行を作成します。
writer.writerow(['Japanese', 'Mathematics', 'English'])
7行目〜11行目ではデータ行の作成をおこなっています。
7行目のfor文ではデータ行を1行分、9行目のfor文では1カラム文のデータを作成しています。
9,10行目で1~10までのランダムな整数を求めて10を掛けています(10点単位にするため)。
これを3回繰り返して3教科の点数を表現しています。
スポンサーリンク
for i in range(10): test =[] for j in range(3):test.append(random.randint(0, 10) * 10) writer.writerow(test)
実行結果
エビデンスとしては少し微妙ですが。
一番最初に「test_data.csv」の中身を表示しています。
そのあとに、「sample_write_test_data.py」を実行します。これでファイルが上書きされます。
最後の「type test_data.csv」でファイルの中身を出力しています。
