【Python】CSVファイルの読み込み

Pythonのファイル入出力は,pandasを利用するのが簡単です.

読み込みの例題に使うCSVファイルは下記のものです.

data.csv


x, y
0, 0
0.02, 0.0102626
0.04, 0.0235473
0.06, 0.0361074
0.08, 0.049341
0.1, 0.0620651
目次

pandasのインストール


pip install pandas

>> 現場で使える!pandasデータ前処理入門

使い方

CSVを読み込む


import pandas as pd


def main():
    df = pd.read_csv('data.csv')
    print(df)

if __name__ == "__main__":
    main()

python3 main.py
      x         y
0  0.00  0.000000
1  0.02  0.010263
2  0.04  0.023547
3  0.06  0.036107
4  0.08  0.049341
5  0.10  0.062065

TextIOWrapperを直接渡す場合は注意が必要です.

Open済みのTextIOWrapperを直接Pandasの引数とする場合,注意が必要です.

read_csvにより,ファイルポインタが最終行に移動するため,再度読み込む場合に正常に読み込めません.

seek(0)でファイルポインタを先頭行まで移動する必要があります.

  • ダメな例

def get_numpy_array_from_csv(csv: TextIOWrapper) -> np.ndarray:
    arr = pd.read_csv(csv)
    return arr.values
  • 正しい例

def get_numpy_array_from_csv(csv: TextIOWrapper) -> np.ndarray:
    csv.seek(0)
    arr = pd.read_csv(csv)
    return arr.values

読み込んだCSVをnumpy配列に変換


import pandas as pd


def main():
    df = pd.read_csv('data.csv')
    array = df.to_numpy()
    print(array)

if __name__ == "__main__":
    main()

python3 main.py
[[0.02      0.0102626]
 [0.04      0.0235473]
 [0.06      0.0361074]
 [0.08      0.049341 ]
 [0.1       0.0620651]]

>> Pythonユーザのための Jupyter[実践]入門

よかったらシェアしてね!
目次