見出し画像

Python CSVファイルを二次元配列に格納する方法3選!

CSVに格納された情報を二次元配列に格納する方法3つを記載します。
また、二次元配列からのデータの取り出し方を記載します。

1.CSVを二次元配列に格納する方法

①方法1 pandas(ヘッダーなし)

コード

import pandas as pd

lst = pd.read_csv("csv_test.csv").values.tolist()
print(lst)

実行結果

[[2, 'test2', 'name', 'age'], [3, 'test3', 'name', 'age'], [4, 'test4', 'name', 'age'], [5, 'test5', 'name', 'age']]

pd.read_csv("csv_test.csv")でファイル名のみ指定すると、1行目はヘッダーとして認識され読み込まれず、2行目から読み込まれます。


②方法2 pandas(ヘッダーあり)

コード

import pandas as pd

lst = pd.read_csv("csv_test.csv", header=None).values.tolist()
print(lst)

実行結果

[[1, 'test1', 'name', 'age'], [2, 'test2', 'name', 'age'], [3, 'test3', 'name', 'age'], [4, 'test4', 'name', 'age'], [5, 'test5', 'name', 'age']]

pd.read_csv("csv_test.csv", header=None).という表記でheader=Noneを指定すると1行目も読み込んでくれます。


③方法3 csv

コード

import csv

with open('csv_test.csv') as file:
    lst = list(csv.reader(file))
    print(lst)

実行結果

[['1', 'test1', 'name', 'age'], ['2', 'test2', 'name', 'age'], ['3', 'test3', 'name', 'age'], ['4', 'test4', 'name', 'age'], ['5', 'test5', 'name', 'age']]

CSVライブラリでも読み込みが可能です。ただし、数値も文字列として認識されるようです。


使い分け

pandas:数値として利用したい値が含まれている場合
csv:すべて文字列として読み込みたい場合

2.二次元配列のデータの取り出し方

コード

    for i in range(len(lst)):
        Date0 = lst[i][0]
        Date1 = lst[i][1]
        Date2 = lst[i][2]
        Date3 = lst[i][3]

        print(Date0)
        print(Date1)
        print(Date2)
        print(Date3)
        print("-----------------------")

実行結果

1
test1
name
age
-----------------------
2
test2
name
age
-----------------------
3
test3
name
age
-----------------------
4
test4
name
age
-----------------------
5
test5
name
age
-----------------------

二次元配列[行番号][列番号]という構文で要素を指定し取り出せます。上記は行ごとにデータを取り出している例です。

この記事が気に入ったらサポートをしてみませんか?