注目キーワード

Pythonで機械学習用のCSVファイルを作成する

機械学習のアウトプットとしてプログラムを書いているときに、ランダムなデータのCSVファイルが必要になって、サンプルソースを作ったので記事にしました。

この記事では、「国語」、「数学」、「英語」の三教科のテスト結果をCSVで作成する処理について説明していきます。

対象レベル

Pythonの環境設定が整っており、Pythonの基本構文が理解出来ること。

詳しくは「【Python入門】〜初級編〜環境構築・基本構文まとめ」にまとめてあります。興味のある方はご覧ください。

サンプルソースを読むうえで理解しておきたいこと

基本的にこの章の内容は読み飛ばしてOKです。サンプルソースでわからないところがあれば参照してみてください。

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」でファイルの中身を出力しています。