Pythonのメモ帳

numpy, pandas, tensorflow を使いこなすための忘備録

csvファイルやexcelファイル(xls, xlsx)を読み込む

 csvファイルやexcelファイル(xls, xlsx)を読み込む場合のコードはいくつかあるのでまとめておく。

 

(1) 標準ライブラリのcsvを使う

import csv

with open('data.txt', 'r', encoding='utf-8') as f:
dataReader = csv.reader(f, lineterminator='\n')
for row in dataReader:
    print(row)

第二引数を'rb'とすればバイナリファイルが扱える。
追加のライブラリが不要。.txt / .csvのどちらも読み込み可能。
空白や文字列があってもOK。

ただし、中身を取り出すのにfor構文が必要で不便。

 

(2) numpy を使う

import numpy as np

data = np.loadtxt('data.txt', delimiter=',', skiprows=0)

np.ndarray型で読み込む。.txt / .csvのどちらも読み込み可能。
ただし,空白や文字列があるとエラーになる。
大抵は先頭行が項目名になってい流けど、その場合は引数をskiprows=1として1行スキップすればOK。

またはgenfromtxt()を使う。空白や文字列があるとnanにしてくれる。

data = np.genfromtxt('data.txt', delimiter=',')

 

 (3) pandasを使う

import pandas as pd

df = pd.read_csv('data.txt', skiprows=0, header=0, index_col=0)

pandas.Dataframe型で読み込む。.txt / .csvのどちらも読み込み可能。
空白や文字列があってもOK。

引数がたくさんあって色々調整できる

header : 項目名に使う行を指定。Noneとしておくと項目名がなくなり、先頭行からデータとして読み込む

index_col:行名として使う列を指定。

その他の引数は省略。 下は関連記事へのリンク。

spcx8.hatenablog.com

 

 

excelファイル(xls, xlsx)を読み込みたい場合は、read_excel()を使う。

df = pd.read_excel('data.xls', skiprows=0, header=0, index_col=2)

 詳しくは別記事で。