【Python】Pandasを使ってCSVファイルを読み込む方法

 

外部ライブラリ「Pandas」を使って、CSVファイルを読み込みます。

読み込むCSVは、オープンデータにしました。
気象庁の過去の気象データです。

出典:気象庁|「最新の気象データ」CSVダウンロード データ部掲載内容(1、3、6、12、24、48、72時間降水量)
最新のCSVファイル

ローカルのDドライブなどにダウンロードして読み込む方法や、URLを指定して直接読み込む方法を紹介します。

Pandasのインストール

表データを扱う外部ライブラリ「Pandas」。
インストールがまだの場合は、ここで入れておきましょう。

Windowsの場合、次のコマンドで行います。

 

Macの場合は、pipの部分がpip3になります。

初めてライブラリをインストールするという方は、もしかするとエラーに悩まされるかもしれません。
こちらの記事で解決方法を解説していますので、参考にしてみてください。

【Python】pipコマンドでライブラリをインストールする手順

ローカル環境のCSVファイルを読み込む

まずはローカル環境のCSVファイルを読み込みます。
ここでは、Pythonのソースファイルと同じ階層に「data」フォルダを作成し、その中に格納したCSVファイルを読み込んでいます。

文字コードがUTF-8の場合、そのまま読み込める

冒頭で書いた気象庁の気象データのCSVファイルです。
UTF-8で保存しました。

 

次のソースコードで実行してみます。
解説は後述します。

 

文字コードを指定しなくても、そのまま読み込めました。

 

使用するライブラリを、最初にインポートします。

as pd のように書けば、ライブラリを使うときpdと短く表記できます。
as pd を書かない場合、読み込むところはこんな感じ。

ちょっと長くなりますね。

 

ライブラリのread_csvを使って、dataフォルダ内のCSVファイルを読み込んでいます。
そして、読み込んだデータを、データフレームのdfに格納しています。

最後に、

でdfを表示させます。

SJISなどの場合、SHIFT-JISを指定して読み込む

UTF-8で保存していたCSVファイルをコピペして、SJISで保存しなおしました。

 

UTF-8のときと同じように読み込もうとすると、次のようにエラーが表示されてしまいます。

 

どうやらSHIFT-JISを指定しないといけないようです。
「えっ、SJISで保存したんじゃないの?」と思われるかもしれません。

そうなんです。
SJISとSHIFT-JISが同じものだと思っていた頃が私にもありました・・・。
同じならエラーにならないんですけんどね。

というわけで、SHIFT-JISを指定した場合のソースがこちら。

 

保存して実行してみます。
ちゃんと読み込めました。

一部の行を指定して読み込む

こんどはスクレイピングしていきます。

行指定の例です。
1つずつ解説していきますね。

行数を指定する

まずは行数を指定する場合

df.locのところで、dfの3,4,5行目を指定しています。

実行したところ、3行分表示されました。

条件に一致する行を指定する

次は、都道府県の列が”東京都”と一致する行のみを指定します。

dfの都道府県が東京都の行だけ、いったんdata_tokyoに格納しました。

 

いったんデータフレームdata_tokyoに格納したデータを、ここで表示しています。

実行したところ、東京都の行が表示されました。

文字列を含む行を指定する

次はあいまい検索です。
都道府県の列に北海道が含まれる行を表示させていきます。

「都道府県」という項目なのに、北海道 ○○地方という表現なんですよね。

と書いても、悲しいことに0件です。

北海道を含むなら、containsを使って次のように書きます。

 

さっそく実行し、北海道 宗谷地方、北海道 檜山地方などが表示されました。

インターネット上のCSVファイルを読み込む

最後に、URLを指定して直接読み込んでいきます。

まず、ソースコードはこちら。
のちほど解説しますね

実行したところ、CSVのデータが表示されました。
画像内のコメント(3,4,5行目を表示)はミスです。

 

定数として使う想定なので、「URL」は大文字で書いています。

read_csvで、CSVファイルが置いてあるところを指定します。
今回はURLのところですね。
2つ目の引数で、文字コードのSHIFT-JISを指定します。

printで表示するところで、行ではなく、今回は列を指定しています。

これで行も列も指定して表示できるようになりました。

まとめ:read_csvで読み込み、文字コードに気を付ける

外部ライブラリのpandasを使ってCSVファイルを読み込みました。

read_csvで、ローカルやインターネット上のCSVファイルを指定します。
文字コードによってはエラーになります。
指定方法など、参考にしてみてくださいね。