はじめに
Pythonのデータ解析ライブラリ pandasでCSVを読み込む方法と「読み込むファイルの指定方法」「Shift-JIS対策」を、わかりやすく・シンプルに解説します。
※ クリックで各項目にジャンプできます
環境
この記事は以下の環境で作成しています。
環境 | バージョンなど |
Python | 3.9.6 |
pandas | 4.7.2 |
OS | Wiindows10 |
「Windows10 + Python + pandas + venv」の環境で作成しています。(AnacondaやJupiterNotebookは使用していません)
「環境やインストール方法が知りたい」という方は、以下の記事をご覧ください。
実行結果
以下3つのCSVファイルを読み込んだ結果です。
- Pythonファイルと同じ場所に置かれたCSVファイル
- Pythonファイルと別の場所に置かれたCSVファイル
- 文字コードがShift-JISのCSVファイル
CSVファイルの内容
それぞれのCSVファイルの内容は以下の通りです。
Pythonファイルと「同じ場所」に置かれたCSVファイル
Pythonファイルと同じ場所に以下のファイルが保存されています。
Pythonファイルと「別の場所」に置かれたCSVファイル
Pythonファイルと別の場所に以下のファイルが保存されています。記事ではCドライブの下に作成したCsvDataというフォルダ(Pythonファイルと別の場所)に以下のファイルを置いています。
文字コードがShift-JISのCSVファイル
Shift-JISで保存されたファイルです。上記と同じCドライブの下に作成したCsvDataというフォルダ(Pythonファイルと別の場所)に以下のファイルを置いています。
実行結果
プログラムの実行結果は以下の通りです。
# 同じ場所に置かれたCSVファイル
name age color flag
0 jiro 11 Blue True
1 saburo 21 Green False
# 別の場所に置かれたCSVファイル
name age color flag
0 jiro 11 Blue True
name age color flag
# Shift-JISで保存されたCSVファイル
0 太郎 1 Red True
1 じろう 11 Blue True
2 サブロー 21 Green False
全体コード
全体コードは以下の通りです。詳細は後述するコードのポイントの中で解説します。
from operator import index
import pandas as pd
# --- CSVを読み込みます ---
# pythonファイルと「同じ場所」のファイル
df_same = pd.read_csv("data_same.csv")
# pythonファイルと「別の場所」のファイル
df_other = pd.read_csv("C:\CsvData\data_other.csv")
# pythonファイルと「同じ場所」の「Shift-jis」のファイル
df_sjis = pd.read_csv("C:\CsvData\data_sjis.csv", encoding="Shift-JIS")
# --- 読み取ったCSVを表示します ---
# 同じ場所のCSVファイル
print(df_same)
# 別の場所のCSVファイル
print(df_other)
# Shift-JISのCSVファイル
print(df_sjis)
コードのポイント
ファイルの読み込みと指定
CSVファイルの読み込みにはread_csv関数を使います。関数の引数に「ファイルの場所(パス)と名前」を指定することで、読み込むファイルを指定できます。
ファイル指定の方法は、CSVファイルがPythonファイルと「同じ場所か、別な場所か」で分かれます。
同じ場所: パスを指定しない
CSVファイルが「Pythonファイルと同じ場所(カレントディレクトリ)の場合」、以下のようにファイル名のみを指定します。
# pythonファイルと「同じ場所」のファイル
df_same = pd.read_csv("data_same.csv")
別の場所:パスの指定する
CSVファイルが「Pythonファイルと別の場所に保存されている場合」、以下のように「場所+ファイル名」の形式で指定します。
# pythonファイルと「別の場所」のファイル
df_other = pd.read_csv("C:\CsvData\data_other.csv")
上記は「絶対パス」という、パスのトップ(Cドライブ)から指定する方法です。Pythonファイルの保存場所から見て「ひとつ上」のような「相対パス」で指定することもできます。
読み込みエラーとShift-JIS対策
Pythonのデフォルトの文字コードは「UTF-8」という形式です。そのため、Windowsでよく使う文字コードである「Shift_JIS」形式をで保存されたファイルを読み込む場合は、read_csv関数に「encoding」という引数が必要になります。
文字コードは、Windows10のメモ帳で確認することができます。CSVファイルを開いて右下に「ANSI」と表示されたら、開いたファイルの文字コードは「Shift-JIS」です。
「encoding」に以下のようにShift_JISの設定をしてください。
# pythonファイルと「同じ場所」の「Shift-jis」のファイル
df_sjis = pd.read_csv("C:\CsvData\data_sjis.csv", encoding="Shift-JIS")
Windows10の旧バージョン・Windows7などを使用している場合は、「TeraPad」(無料のメモ帳アプリ)がおすすめです。上記と同様に右下に文字コードが表示されます。
まとめ
Pythonのデータ解析ライブラリ pandasでCSVを読み込む方法と「読み込むファイルの指定方法」「Shift-JIS対策」について解説しました。参考になればうれしいです。
お知らせ
3月号の『日経ソフトウェア』はPythonの特集。穴埋め式クイズで学ぶPython入門や、PythonでExcelを動かす方法などが特集されています。
CSVから読み込んだ後は・・・
このブログではCSVから読み込んだ後のデータの操作や、読み取り後のデータ形式(DataFrame)についての内容も解説しています。興味がある場合は、是非以下のリンクも参考にしてみてください。
CSVファイル読み込み後に単一要素にアクセスする
読み込み後のCSVファイルの形式「DataFrame」について
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。