英国でデータサイエンスを学ぶ

30代になってから海外で統計学・機械学習・プログラミングを勉強

MENU

Pythonでcsvファイルを読み込む

私の場合もっともよく使うcsvの読み込み


サンプルcsvの準備

下記のデータを"data.csv"として保存。
これを読み込むことを想定しています。


,col0,col1,col2,col3,col4,col5,col6,col7,col8,col9
row0,0,1,2,3,4,5,6,7,8,9
row1,10,11,12,13,14,15,16,17,18,19
row2,20,21,22,23,24,25,26,27,28,29
row3,30,31,32,33,34,35,36,37,38,39
row4,40,41,42,43,44,45,46,47,48,49
row5,50,51,52,53,54,55,56,57,58,59
row6,60,61,62,63,64,65,66,67,68,69
row7,70,71,72,73,74,75,76,77,78,79
row8,80,81,82,83,84,85,86,87,88,89
row9,90,91,92,93,94,95,96,97,98,99


他のタイプのcsvデータについては下記を参照。
detailed-balance.hatenablog.com


csvモジュールを利用してcsvファイルを読み込む方法

import csv #csvモジュールのインポート
f = open('data.csv', 'r') #data.csvを開く

data = f.read().splitlines()#改行区切りで読み込む

array = [[] for i in range(len(data))]#空の2次元配列を用意

#2次元配列に","区切りでデータを入れる
for i in range(len(data)):
    array[i] = data[i].split(",")

f.close()#ファイルを閉じる

ひとまずこの方法でできることはできるのですが、より適切な方法があるのではないかと思ってしまいます。
2次元配列に読み込んだ後には(上のコードではarray)、pandasのデータフレームに入れて数値に変換することが必要ですね。
上記コードでは文字列のままですので。


pandasを利用してcsvファイルを読み込む方法

個人的にはこの方法を頻繁に利用しています。

import pandas as pd #pandasのインポート
df = pd.read_csv("data.csv",index_col = 0) #data.csvの読み込み。左端の列をindex名として使用(pythonでは0列目)