【Python】pandasでCSVファイルを読み込む方法【read_csv】

pythonでファイルを読み込みたいけど、どうやってやるの?



本記事では、Python初心者向けに、pandasでCSV(カンマ区切り)ファイルを読み込む方法をご紹介します。


結論、read_csv関数を使うことで、CSVファイルは読み込めます。


read_csv関数の詳しい使い方について、マスターしていきましょう。


データサイエンスを学びたい人におすすめ!プログラミングスクール
  • TechAcademy [テックアカデミー]
    豊富なコースで目的にあわせて選択可能、初心者から転職希望者までタイプ別にプランをカスタマイズマンツーマンサポートがつく。
  • DMM WEBCAMP
    転職成功率98%&離職率2.3%転職できなければ全額返金DMM.comグループならではの非公開求人も多数
  • アイデミー
    AIやデータサイエンスに特化オンライン学習なのでいつでも学習可能。学習したい講座を自由に追加受講することができる。



read_csv関数でファイルを読み込む



【STEP1】ライブラリのimport

ライブラリをimportすることで、このPythonファイルでライブラリを使える状態になります。

今回使うread_csv関数は、pandasにある関数なので、pandasをimportします。


#pandasをpdとしてimportする
import padnas as pd






【STEP2】csvファイルの読み込み

csvファイルを読み込む時は、read_csv関数を使います。



括弧の中に記載するデータファイル名は、あなたが読み込みたいデータファイル名に書き換えてください。

#「sample.csv」を手元のデータファイル名に置き換える
df = pd.read_csv("sample.csv")



データファイルが格納されている場所によって、記載方法が異なります。

ファイルの場所指定方法
  1. Pythonファイルと同じ場所の場合:ファイル名のみ指定
  2. Pythonファイルと別の場所の場合:パスを指定


パスを指定する場合は、トップから指定する「絶対パス」でも、Pythonファイルから見たパスである「相対パス」でも、どちらでもOKです。

#相対パスの例
df2 = pd.read_csv("taitanic/train.csv")
#絶対パスの例(macOSの場合)
df3 = pd.read_csv("/Users/user/Desktop/blog/read_csv/taitanic/train.csv")





絶対パスと相対パスの違いについて、下記のYoutube動画で解説していますので、ぜひご参照ください。






【STEP3】ファイルの確認

読み込みたいデータ「sample.csv」を「df」という名前で読み込みました。


「df」と入力すると、読み込んだファイルが見れます。

読み込んだファイルを表示



read_csv関数で読み込むと、読み込んだデータファイルは2次元の表形式のデータ(DataFrame)になります。

read_csv関数のオプション


オプションとは、任意で指定できる設定のことです。



read_csv関数のオプションの例は、次の通りです。


オプション

・sep=”区切り文字”:カンマ以外が区切り文字の場合は指定する。(CSVの区切りはカンマがデフォルトです。)
・header=行番号:先頭行以外を見出し項目(ヘッダー)にしたい場合は、行番号を指定する。
・names=[“項目名”,…]:見出し項目名(列名)を指定する。
・index_col=列番号もしくは”項目名”:インデックスを指定する。(インデックスとは、各行の情報を一意に指定できる列のこと。通し番号など)




read_csv関数で起きやすいエラー

UnicodeDecodeError


ファイルの中身に日本語がある場合は、UnicodeDecodeErrorが生じます。


UnicodeDecodeErrorは、文字コードが適していない場合に起きるエラーです。

#ファイルの中身が日本語なのに、文字コードを設定しないことで生じるエラー

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x95 in position 1: invalid start byte



文字コードってなに?

文字コードは、文字をコンピュータで処理したり通信したりするために、文字の種類に番号を割り振ったものだよ。
文字コードによって、どの文字をどんな数字で表現するかルールが違うから、文字コード「SHIFT-JS」で変換しないといけないところを、別の文字コード「UTF-8」などで変換しようとすると、文字化けしてしまうよ。



read_csv関数は、文字コードを指定しない場合、「UTF-8」を採用しています。




日本語を変換する場合は、「shift-jis」という文字コードにする必要があります。


次のように記述してください。

df_japanese = pd.read_csv("sample_japanese.csv", encoding="shift-jis")




C error

C errorとは、カラム(Column)に関するエラーです。

ParserError: Error tokenizing data. C error: Expected 2 fields in line 8, saw 53




C errorは、列(カラムサイズ)が一定ではないデータを読み込もうとすると生じます。


例えば、読み込みたいファイルの状態が、こんな場合のことを指します。
1列に入っている要素の数(カラムサイズ)がバラバラだね。

12
123
1
123456
C errorが起きるデータ例




カラムサイズが一定ではないデータファイルの場合は、列名を指定することで解消します。

例えば、下記のように、オプションnameを指定します。

#最大カラム数が6の場合の例
df = pd.read_csv("sample.csv", names=[1,2,3,4,5,6])



Youtubeでは動画解説中

本記事は、Youtubeにて動画でも解説しています。

動画内では、kaggleでデータをダウンロードするなど、一部内容が異なっていますが、importについての解説も行っています。


実際にPythonをコーディングしている様子を確認したい方は、ぜひこちらもご参照ください。



Pythonでのデータ分析を学びたい方におすすめ


Pythonでデータ分析・データサイエンスをしたい初心者向けに、Pythonデータ分析徹底解説総まとめページを作成しました。



流れに沿って実装することで、データ分析の基礎が固められます。

【総集編】データ前処理をPythonで実装【機械学習入門】

2022年9月25日

また、専門の講師と一緒に挫折せずに学習したい方には、データサイエンススクールがおすすめです。

おすすめのスクール一覧はこちらからどうぞ。

【2023年最新版】データサイエンスが学べるおすすめスクール5選

2022年6月4日