Up

CSVファイルの作成と読み込み

 

CSV形式のファイルは、データをカンマ,で区切った形式のものである(岡本、2019pp.33-35)。作成は、Excelなどの表計算ソフトで簡単にできる。読み込みも、Pandaで簡単にできる。

 

 

 

CSVファイルの作成

 

ExcelCSV形式のファイルを作成する例を示すが、他の表計算ソフトの場合も同様である

新規にデータを図1のように用意したとする。

図1

 

作成したデータをCSVファイルとして保存するために、「名前を付けて保存」のページにおいて「参照」を選ぶ(図2)。

図2

 

「名前を付けて保存」ダイアログボックスが提示される(図3)。

図3

 

「ファイルの種類」において、「CSV(カンマ区切り(*.csv))」を選ぶ。

図4

 

ファイル名をファイル拡張子を「.csv」として付ける。「保存」ボタンをクリックする。

「〜ブックの一部の機能が失われる可能性があります。この形式でブックを保存しますか?」のメッセージボックスが表示される(図5)。

図5

 

CSV形式のファイルの場合、データ値そのものだけが保存されるので、セルの幅とか「ブックの一部の機能」は保存するデータとしては関係ないので、「はい」を選ぶ。

図4で設定したファイル名「Sample.csv」のデータとして表示される(図6)。

図6

 

Excelを終了するときに、図7のようなメッセージボックスが表示されたときは、「保存」を選んでおけばよい。

図7

 

さらに、図8のようなメッセージボックスが表示されたら、「はい」を選ぶ。

図8

 

保存したCSVファイルを、テキストエディタで開くと、図9のようになっている。

図9

 

設定した値が、カンマで区切って並べられていることがわかる。

CSV形式のファイルは、表計算ソフトを用いなくても、データをカンマで区切って並べてエディタで直接作成することもできる。

 

 

 

CSVファイルの読み込み

 

CSVファイルの読み込みは、リストのスクリプト例のように簡単にできる。

上で作成したCSVファイルSample.csvの読み込みは、次のコードで行っている。読み込むCSVファイルは、スクリプトと同じフォルダ内に置かれているものとする。

 

df = pd.read_csv('Sample.csv', encoding='shift-jis')

 

パラメータencoding='shift-jis'は、日本語を含むデータの読み込みを行うためのものである。

dfの表す読み込まれた内容は、PandasDataFrameオブジェクトとして納められている。

次のprint

 

print('df =\n', df)

 

で出力すると、以下の出力を得る。

 

df =

    項目A  項目B  項目C

0  1.0  5.0    3

1  2.0  6.0    4

2  3.0  NaN    5

3  NaN  7.0    6

 

各変数の内容は、キーを指定して、valuesnd.array型に変換することで、配列の値として利用することができる。

 

X = df['項目A'].values

print('A =\n', X)

Y = df['項目B'].values

print('B =\n', Y)

Z = df['項目C'].values

print('C =\n', Z)

 

print文による出力は、以下の通りである。

 

A =

 [ 1.  2.  3. nan]

B =

 [ 5.  6. nan  7.]

C =

 [3 4 5 6]

 

図6で、空白のセルに対応する箇所は「nan」となっている。

この「nan」を削除した配列は、次のコードで得ることができる。

 

X1 = X[np.isnan(X)==False]

Y1 = Y[np.isnan(Y)==False]

Z1 = Z[np.isnan(Z)==False]

 

X1Y1Z1の内容を、次のコード

 

print('X1 =\n', X1)

print('Y1 =\n', Y1)

print('Z1 =\n', Z1)

 

で確認している。

出力は、以下のようである。

 

X1 =

 [1. 2. 3.]

Y1 =

 [5. 6. 7.]

Z1 =

 [3 4 5 6]

 

nan」が削除されていることが分かる。

Pandas.read_csvで読み込んだデータを、変数単位ではなく全体をまとめて読み込みndattay型のデータとして得るときは、次のコードで行えばよい。

 

Data = df.values

print('Data =\n', Data)

 

このとき、printによる出力は以下のようである。

 

Data =

 [[ 1.  5.  3.]

 [ 2.  6.  4.]

 [ 3. nan  5.]

 [nan  7.  6.]]

 

変数名は、次のコードで得ることができる。

 

Var_names = df.keys().values

print('Var_names =\n', Var_names)

 

printによる出力は、以下のようである。

 

Var_names =

 ['項目A' '項目B' '項目C']

 

 

 

 

リスト1 CSVファイルの読み込み

 

import pandas as pd

import numpy as np

 

df = pd.read_csv('Sample.csv', encoding='shift-jis')   #   PandasのオブジェクトDataFrameとして取得

print('df =\n', df)

print('Keys =\n', df.keys().values)

X = df['項目A'].values

print('A =\n', X)

Y = df['項目B'].values

print('B =\n', Y)

Z = df['項目C'].values

print('C =\n', Z)

X1 = X[np.isnan(X)==False]

Y1 = Y[np.isnan(Y)==False]

Z1 = Z[np.isnan(Z)==False]

print('X1 =\n', X1)

print('Y1 =\n', Y1)

print('Z1 =\n', Z1)

Data = df.values

print('Data =\n', Data)

Var_names = df.keys().values

print('Var_names =\n', Var_names)

 

 

 

Home