CSV-python

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は使用していません)

「環境やインストール方法が知りたい」という方は、以下の記事をご覧ください。

楽天ブックス
¥1,980 (2022/09/21 10:02時点 | 楽天市場調べ)

実行結果

以下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対策」について解説しました。参考になればうれしいです。

Pythonを使ったデータサイエンス講座

この記事は入門的な内容ですが、実はUdemyの動画講座なら初心者の方でも「データサイエンスのためのPythonの使い方」を「手を動かしながら」学べます。

講師は米国在住の現役データサイエンティストで、数ある講座の中でも「最高評価」を受けています。同講師による「Pythonでの統計学超入門講座」なども公開されているので「ビックデータを解析してみたい」という方は、以下のリンクを見てみてください。

⇒ 米国データサイエンティストがやさしく教えるデータサイエンスのためのPython講座を見る

⇒ 米国データサイエンティストが教える統計学超入門講座【Pythonで実践】を見る

自分でコードを打つ時間がない時は

『自分でやるには時間がない、でも頼める人もいない』と悩んでいるあなたに「ココナラ」があります。

登録者数は約200万。専門家・フリーランスも多く、制作サンプルやレビューを見て自分にあった人を選ぶことができます。特に人気の「Python」なら絶対数が多いので「デキる人」も見つけやすいです。登録は無料なのでどんな人・チームがいるか確認してみてください。

(HP製作・動画製作・面倒な業務文書の作成代行も依頼もできますよ)

1分以内に完了!無料会員登録はこちら

CSVから読み込んだ後は

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

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

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

応援・要望お待ちしてます

ブログを見ていて「この辺を詳しく知りたい」「このライブラリの使い方を知りたい」「こんなことで困ってる」...etc があれば、コメント・問い合わせ・Twitterで教えてください。質問・ご要望に合わせて解説記事を作ります。

ブログを気に入っていただけたり、「応援してもいいよ」という方がいたら、ブログやSNSでの紹介をお願いします。 あたたかい応援は、中の人の更新の大きな励みになります。

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

COMMENT

メールアドレスが公開されることはありません。