CSV-python PR

Python pandas CSVの読み込み ~ファイルの指定とShift-JIS対策~

記事内に商品プロモーションを含む場合があります

はじめに

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ファイルの内容を示す画像
data_same.csvの内容

Pythonファイルと「別の場所」に置かれたCSVファイル

Pythonファイルと別の場所に以下のファイルが保存されています。記事ではCドライブの下に作成したCsvDataというフォルダ(Pythonファイルと別の場所)に以下のファイルを置いています。

Pythonファイルと別の場所に保存したCSVファイルの内容を示す画像
data_other.csvの内容

文字コードがShift-JISのCSVファイル

Shift-JISで保存されたファイルです。上記と同じCドライブの下に作成したCsvDataというフォルダ(Pythonファイルと別の場所)に以下のファイルを置いています。

Shift-JISで保存されたファイルの内容を示す画像。
data_sjis.csvの内容

実行結果

プログラムの実行結果は以下の通りです。

# 同じ場所に置かれた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関数を使います。関数の引数に「ファイルの場所(パス)と名前」を指定することで、読み込むファイルを指定できます。

read_csv( ” ファイルの場所 + ファイルの名前.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を動かす方法などが特集されています。

編集:日経ソフトウエア
¥1,925 (2024/02/20 06:32時点 | Amazon調べ)

CSVから読み込んだ後は・・・

このブログではCSVから読み込んだ後のデータの操作や、読み取り後のデータ形式(DataFrame)についての内容も解説しています。興味がある場合は、是非以下のリンクも参考にしてみてください。

CSVファイル読み込み後に単一要素にアクセスする

読み込み後のCSVファイルの形式「DataFrame」について

質問・要望 大歓迎です

「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。

使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。

ABOUT ME
えす
現役のソフトウェアエンジニアです。 C++ C# Python を使ってます。10年ちょい設計/開発部門にいましたが、今はQAエンジニアっぽいことをしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です