【Python】pandasライブラリを使ってCSVを読み込む方法

【Python】pandasライブラリを使ってCSVを読み込む方法プログラミング

こんにちは。さすをです。

以前、6,000万のPython案件に携わりました。

今回の記事は、pandasライブラリを使ってCSVを読み込む方法を紹介していきます。

それでは本文をどうぞ。

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

わかりやすく教えてほしい、、

pandasでCSV読み込みしたい女性
pandasでCSV読み込みしたい女性
さすを
さすを

これらの悩みを解決します!

この記事を読むとわかること:

・pandasライブラリを使ってCSVを読み込む方法

・特定の行、列の抽出方法

・絶対パス、相対パスの違い

・文字化けの対処法

・読み込んだCSVを配列に格納する方法

・エラーの対処法

筆者の情報:

・現役システムエンジニア 兼 副業ブロガー

・過去に6,000万のPython案件を受注

pandasライブラリをまだインストールしていない方は、【これだけ知っておけばOKです】 現役エンジニアもよく使う便利なPythonライブラリ22選から、インストールしてください。

スポンサーリンク

1.pandasライブラリを使ってCSVを読み込む方法

1.pandasライブラリを使ってCSVを読み込む方法

例として使用するCSV(default.csv)はこちらです。

Number,Month,Fruit
1,Aplil,りんご
2,Jun,ぶどう
3,December,みかん

なお、フォルダ構成は以下のようになっています。

状況によってパスは変更してください。

図1 ファイル構成
図1 ファイル構成

今回書いているスクリプトはread_csv.pyです。

読み込んでいるdefault.csvは、CSVフォルダの中に入っています。

そのほかのフォルダはpandasをインストールした際に作られたものです。

そして、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を読み込むときはパスを利用する!

2.pandasライブラリを使ってCSVを読み込むときはパスを利用する!

pandasライブラリを使ってCSVを読み込むときは絶対パス相対パスを使用します。

絶対パス:

ルートディレクトリと呼ばれる階層構造の頂点から目的地までの経路を表します。フルパスと言われることもあります。

作業中のフォルダの場所関係なく、常に同じスタート地点からの表示となります。

絶対パスを使ってdefault.csvを読みこむときは、

“C:\\Users\\Sasuwo\\Desktop\\Python\\csv\\default.csv”

のように書きます。

さすを
さすを

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

図2 パスの見つけ方
図2 パスの見つけ方

相対パス:

スクリプトから見た読み込む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読み込みする方法

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読み込みする方法

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読み込みする方法

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が文字化けする時は文字コードを指定しよう

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.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が同じフォルダにある場合』と同じですが、フォルダの場所が違うとします。

図3 CSVのフォルダが異なる場合
図3 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読み込みしたらエラーが出た!対処法は?

9.pandasライブラリを使ってCSV読み込みしたらエラーが出た!対処法は?

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

エラーがでて困っている女性
エラーがでて困っている女性
さすを
さすを

そんなときはエラーの原因を見てみましょう!

どれほど優秀なプログラマーでも、エラーは必ずでます。

ですので、怖がらなくて大丈夫です。

エラーの原因を突き止め、解決していきましょう。

エラーを解消する方法はわずか2ステップでできます。

9-1.エラーログを読む

エラーを解消する方法の1ステップ目は、エラーログを読むです。

これは、プログラムを書く上で一番重要です。

なぜなら、そこには必ずエラーの原因が書かれているからです。

英語で書かれているため、読みづらいと思う方もいるでしょう。

しかし、エラーログをしっかり読むことで、「どの行でエラーが発生しているのか」「どのような原因でエラーが発生しているのか」がわかります。

エラーが発生した時は、ソースコードを書き替える前にまずエラーログをじっくり読みこみましょう。

9-2.ググる

エラーを解消する方法の2ステップ目は、ググるです。

「9-1.エラーログを読む」を行ったあなたは、なぜエラーが発生しているのかはわかっているはずです。

ですので、あとは、エラーを解消する方法をググりましょう。

調べ方のコツとしては、

1.エラーログをコピペして検索

2.エラー内容を日本語にして検索

の順に行えばOKです。

あなたと同じ場所につまずいた人は過去に必ずいます。

わかりやすい、見やすいページを探して、トライアンドエラーを繰り返していきましょう。

さすを
さすを

エラーの原因が自分の中でしっかりわかっていれば、解決しやすいですよね!

10.まとめ

10.まとめ

6,000万のPython案件に携わった経験のある筆者が、pandasを使ったCSV読み込みの方法を紹介してきました。

あなたは今、業務で、独学で、将来の夢の為、Pythonを触っているのだと思います。

この記事が少しでもあなたの役に立てていたらうれしいです。

頑張るあなたを応援しています!

それでは!

コメント

タイトルとURLをコピーしました