![見出し画像](https://assets.st-note.com/production/uploads/images/97457630/rectangle_large_type_2_dd1d73f1bf9177eed233c56674d72837.jpeg?width=1200)
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
-----------------------
二次元配列[行番号][列番号]という構文で要素を指定し取り出せます。上記は行ごとにデータを取り出している例です。