こんにちは。さすをです。
以前、6,000万のPython案件に携わりました。
今回の記事は、pandasライブラリを使ってCSVを読み込む方法を紹介していきます。
それでは本文をどうぞ。

Pythonのpandasライブラリを使ってCSVを読み込みたいんだけどやり方がわからない、、
わかりやすく教えてほしい、、

これらの悩みを解決します!
pandasライブラリをまだインストールしていない方は、【これだけ知っておけばOKです】 現役エンジニアもよく使う便利なPythonライブラリ22選から、インストールしてください。
※0円のサンプルテキストという近道
独学よりプログラミングスクールの方が効果は出やすいですが、値段が高く、なかなか手を出しづらいですよね。techgymでは無料のサンプルテキストと解説動画をもらえるので、これを使ってお得にPythonの基礎を学ぶのもオススメです。
最短1分でできる!
- 1.pandasライブラリを使ってCSVを読み込む方法
- 2.pandasライブラリを使ってCSVを読み込むときはパスを利用する!
- 3.pandasライブラリを使って特定の行をCSV読み込みする方法
- 4.pandasライブラリを使って特定の列をCSV読み込みする方法
- 5.pandasライブラリを使って特定の行と列をCSV読み込みする方法
- 6.読み込んだCSVが文字化けする時は文字コードを指定しよう
- 7.pandasライブラリを使って複数のCSVを読み込む方法
- 8.pandasライブラリで読み込んだCSVを配列に格納する方法
- 9.pandasライブラリを使ってCSV読み込みしたらエラーが出た!対処法は?
- 10.Pythonスキルを伸ばす方法
- 11.おわりに
1.pandasライブラリを使ってCSVを読み込む方法

例として使用するCSV(default.csv)はこちらです。
Number,Month,Fruit
1,Aplil,りんご
2,Jun,ぶどう
3,December,みかん
なお、フォルダ構成は以下のようになっています。
状況によってパスは変更してください。

そして、pandasライブラリを使ってCSVを読み込む方法は下記の通りです。
#pandasをインポート
import pandas as pd
#読み込んだCSVをdfに代入
df = pd.read_csv("csv/default.csv")
#dfを表示
print(df)
出力結果は下記の通り。
#出力結果
Number Month Fruit
0 1 Aplil りんご
1 2 Jun ぶどう
2 3 December みかん
indexが不要な場合は、pandas.DataFrame.to_stringを使うことで解消できます。
import pandas as pd
#.to_string(index=False)
#でインデックスを見えなくする。
df = pd.read_csv("csv/default.csv").to_string(index=False)
print(df)
#出力結果
Number Month Fruit
1 Aplil りんご
2 Jun ぶどう
3 December みかん
headerが不要な場合は、headerオプションを使用すればOKです。
import pandas as pd
#header=Noneでheaderをなしに設定
df = pd.read_csv("csv/default.csv",header=None).to_string(index=False)
print(df)
#出力結果
0 1 2
Number Month Fruit
1 Aplil りんご
2 Jun ぶどう
3 December みかん
2.pandasライブラリを使ってCSVを読み込むときはパスを利用する!

pandasライブラリを使ってCSVを読み込むときは絶対パスか相対パスを使用します。
絶対パス:
ルートディレクトリと呼ばれる階層構造の頂点から目的地までの経路を表します。フルパスと言われることもあります。
作業中のフォルダの場所関係なく、常に同じスタート地点からの表示となります。
絶対パスを使ってdefault.csvを読みこむときは、
“C:\\Users\\Sasuwo\\Desktop\\Python\\csv\\default.csv”
のように書きます。

目的のファイルのパスをコピー&ペーストすればOKです!

相対パス:
スクリプトから見た読み込むCSVの位置のことです。
上記の例で言うとread_csv.pyの場所は、C:\Users\Sasuwo\Desktop\Python
default.csvの場所は、C:\Users\Sasuwo\Desktop\Python\csv
にあるので、相対パスを使ってdefault.csvを読み込むときは、
/csv/default.csv
と書きます。

今作成しているファイルの位置を基準として見るということですね!
3.pandasライブラリを使って特定の行をCSV読み込みする方法

pandasライブラリを使って特定の行をCSV読み込みする方法は下記の通りです。
import pandas as pd
df = pd.read_csv("csv/default.csv")
#CSVの2,3行目を抽出
df_col = df[1:3]
print(df_col)
#出力結果
1 2 Jun ぶどう
2 3 December みかん

行は0番目が最初なので注意が必要です!
4.pandasライブラリを使って特定の列をCSV読み込みする方法

pandasライブラリを使って特定の列をCSV読み込みする方法は下記の通りです。
import pandas as pd
df = pd.read_csv("csv/default.csv")
#CSVのMonth列を抽出
df_row = df["Month"]
print(df_row)
#出力結果
0 Aplil
1 Jun
2 December
Name: Month, dtype: object
複数の列を読み込みたい場合は、
import pandas as pd
df = pd.read_csv("csv/default.csv")
#CSVのNumber列、Month列を抽出
df_row = df.loc[:,['Number','Month']]
print(df_row)
でOKです。
#出力結果
Number Month
0 1 Aplil
1 2 Jun
2 3 December
5.pandasライブラリを使って特定の行と列をCSV読み込みする方法

pandasライブラリを使って特定の行と列をCSV読み込みする方法は、下記の通りです。
import pandas as pd
df = pd.read_csv("csv/default.csv")
#行の指定(2~3行目)、列の指定(Number,Month列)を一緒に行う
df_row_col = df.loc[1:3,['Number','Month']]
print(df_row_col)
#出力結果
Number Month
1 2 Jun
2 3 December
6.読み込んだCSVが文字化けする時は文字コードを指定しよう

読み込んだCSVが文字化けしてしまうときは、文字コードを指定する必要があります。
下記のように文字コードを指定することで、文字化けを解消することができます。
import pandas as pd
df = pd.read_csv("csv/default.csv",encoding="utf-8")
もし、これでも解消できない場合は、Windowsの特殊文字が使われている場合があります。
そんなときは、
import pandas as pd
df = pd.read_csv("csv/default.csv",encoding="cp932")
とすればOKです。
7.pandasライブラリを使って複数のCSVを読み込む方法

7-1.複数のCSVが同じフォルダにある場合
csvファイルの名前と中身は下記の通りです。
csvファイルは図1のcsvフォルダに格納されています。
#default_csv
Number,Month,Fruit
1,Aplil,りんご
2,Jun,ぶどう
3,December,みかん
#default2_csv
Number,Month,Fruit
10,Aplil,なし
11,May,さくらんぼ
12,November,めろん
#default3_csv
Number,Month,Fruit
20,Aplil,いちご
21,Jun,ようなし
22,December,あんず
これらのCSVを読み込み、連結させる方法はこちら。
import pandas as pd
#特定のパターンに合うファイルを取得できるモジュール
import glob
#csvフォルダにあるcsvファイルを全て抽出
csv_files = glob.glob('csv/*.csv')
#結合するリストを用意
merge_csv_list = []
#各csvファイルを読み込み、リストに追加
for file in csv_files:
merge_csv_list.append(pd.read_csv(file))
#concatでmerge_csv_listを連結する
#axis=0 → 縦方向に連結
df = pd.concat(merge_csv_list,axis=0).to_string(index=False)
print(df)
#出力結果
Number Month Fruit
1 Aplil りんご
2 Jun ぶどう
3 December みかん
10 Aplil なし
11 May さくらんぼ
12 November めろん
20 Aplil いちご
21 Jun ようなし
22 December あんず

横方向に連結させたい場合は、axis=1にすればOKです!
7-2.複数のCSVが違うフォルダにある場合
csvファイルの名前と中身は『7-1.複数のCSVが同じフォルダにある場合』と同じですが、フォルダの場所が違うとします。

各フォルダの中身はこちらの通りです。
- csvフォルダ:default_csv
- csv2フォルダ:default2_csv
- csv3フォルダ:default3_csv
これらのCSVを読み込み、連結させる方法はこちら。
import pandas as pd
#特定のパターンに合うファイルを取得できるモジュール
import glob
#csvフォルダにあるcsvファイルを全て抽出
csv_files = glob.glob('csv*/*.csv')
#結合するリストを用意
merge_csv_list = []
#各csvファイルを読み込み、リストに追加
for file in csv_files:
merge_csv_list.append(pd.read_csv(file))
#concatでmerge_csv_listを連結する
#axis=0 → 縦方向に連結
df = pd.concat(merge_csv_list,axis=0).to_string(index=False)
print(df)

図1のようなディレクトリ構成であれば、glob.glob(‘csv*/*.csv)としてあげるだけでOKです!
8.pandasライブラリで読み込んだCSVを配列に格納する方法

pandasライブラリで読み込んだCSVを配列に格納する方法は下記の通りです。
#pandasをインポート
import pandas as pd
#読み込んだCSVを配列にしてdfに代入
df = pd.read_csv("csv/default.csv").values.tolist()
#dfを表示
print(df)
#出力結果
[[1, 'Aplil', 'りんご'], [2, 'Jun', 'ぶどう'], [3, 'December', 'みかん']]
9.pandasライブラリを使ってCSV読み込みしたらエラーが出た!対処法は?


pandasライブラリを使ってCSV読み込みをしようとしたらエラーがでた、、

そんなときはエラーの原因を見てみましょう!
どれほど優秀なプログラマーでも、エラーは必ずでます。
ですので、怖がらなくて大丈夫です。
エラーの原因を突き止め、解決していきましょう。
エラーを解消する方法はわずか2ステップでできます。
9-1.エラーログを読む
エラーを解消する方法の1ステップ目は、エラーログを読むです。
これは、プログラムを書く上で一番重要です。
なぜなら、そこには必ずエラーの原因が書かれているからです。
英語で書かれているため、読みづらいと思う方もいるでしょう。
しかし、エラーログをしっかり読むことで、「どの行でエラーが発生しているのか」「どのような原因でエラーが発生しているのか」がわかります。
エラーが発生した時は、ソースコードを書き替える前にまずエラーログをじっくり読みこみましょう。
9-2.ググる
エラーを解消する方法の2ステップ目は、ググるです。
「9-1.エラーログを読む」を行ったあなたは、なぜエラーが発生しているのかはわかっているはずです。
ですので、あとは、エラーを解消する方法をググりましょう。
調べ方のコツとしては、
1.エラーログをコピペして検索
2.エラー内容を日本語にして検索
の順に行えばOKです。
あなたと同じ場所につまずいた人は過去に必ずいます。
わかりやすい、見やすいページを探して、トライアンドエラーを繰り返していきましょう。

エラーの原因が自分の中でしっかりわかっていれば、解決しやすいですよね!
10.Pythonスキルを伸ばす方法
10-1.独学編
Pythonスキルを独学で身に着けるためには、参考書が必須です。
おすすめのPython書籍を以下の記事で解説したので、参考にしていただけたらと思います。
本を買う前に、一度Pythonの学習をしてみたいという方は、Pythonを学べるおすすめ学習サイトを以下の記事で解説したので、こちらも参考にしてみてください。
>>【料金別&徹底解説】 Pythonおすすめ勉強サイト8選【楽しく学ぼう】
10-2.スクール編
お金がかかってもいいから、少しでも早くPythonスキルを身につけたい方は、TechAcademy(テックアカデミー)のPythonコースがおすすめです。
エンジニアになれば、受講料は1か月もあれば回収できるので、問題なしです。
本気でPythonスキルを身につけたい方は、スクールで一気にスキルを身に着けるのもありでしょう。
>>TechAcademy(テックアカデミー)のPythonコースはこちら
11.おわりに

6,000万のPython案件に携わった経験のある筆者が、pandasを使ったCSV読み込みの方法を紹介してきました。
あなたは今、業務で、独学で、将来の夢の為、Pythonを触っているのだと思います。
この記事が少しでもあなたの役に立てていたらうれしいです。
頑張るあなたを応援しています!
それでは!
最短1分でできる!
>>【Python】CSVの書き出し方法【誰でも簡単にできます】
コメント