CSVファイルをPandasで読み込もう!read_csvの使い方とオプション解説
CSV(Comma Separated Values)は、テキストベースのファイル形式で、データをカンマで区切って表現するものです。
Pandasは、データ解析において広く使われているPythonのライブラリであり、CSVファイルを扱うための便利な機能がたくさんあります。
read_csv関数は、Pandasが提供するCSVファイルを読み込むための関数の一つであり、CSVファイルをDataFrameというデータ構造に変換することができます。
本記事では、read_csv関数と便利なオプションついて、詳しく解説していきます。
spyderの使い方が分からない方や、エラーが出る方は下のボタンをクリックしてください。
spyderの使い方(ファイル作成・プログラム実行など)が分からない方はクリック
spiderのインストールがまだの方
「Anaconda Powershell Prompt」や「spyder」が分からない方は「Anacondaをインストール|pythonが動く環境を構築しよう」をご覧ください。
新しいファイルを作成する
画面上部のツールバーの中の「用紙」のようなアイコンをクリックすると作成できます。
ショートカットキー Ctrl+N でも作成することが可能です。
プログラムを全部実行する
画面上部のツールバーの中の「再生ボタン」のようなアイコンをクリックするとプログラムが動きます。書いてあるプログラムを全て実行します。
ショートカットキー F5 でも実行することが可能です。
プログラムを一部実行する
画面上部のツールバーの中の「カーソル」のようなアイコンをクリックすると、カーソルを置いている行のプログラムだけが実行されます。何行かを範囲選択している場合は、選択している行のプログラムだけが実行されます。
ショートカットキー F9 でも実行することが可能です。
ModuleNotFoundError が出る方はクリック
「ライブラリがインストールされてないですよ」というエラー文です。ライブラリをインストールして解消しましょう。インストールはとても簡単です。「Anaconda Powershell Prompt」を新たに立ち上げ、適切なコマンドを貼り付けてエンターを押すだけです。
ModuleNotFoundErrorに続く文字によって、コマンドが異なりますので、エラー文をよく見て適切なコマンドを貼り付けてください。
ModuleNotFoundError: No module named 'webdriver_manager'
pip install webdriver-manager
「Anaconda Powershell Prompt」を新しく立ち上げます。そこに上記コードをコピーしてエンターを押します。必要なライブラリが自動でインストールされるので、終わるまで待ちます。
ModuleNotFoundError: No module named 'selenium'
pip install selenium
「Anaconda Powershell Prompt」を新しく立ち上げます。そこに上記コードをコピーしてエンターを押します。必要なライブラリが自動でインストールされるので、終わるまで待ちます。
read_csv関数の基本的な使い方
read_csv関数を使ってCSVファイルを読み込むには、以下のようにコードを記述します。
import pandas as pd
df = pd.read_csv('sample.csv')
sample.csvは、読み込むCSVファイルのパスを指定します。
read_csv関数は、CSVファイルを読み込んでDataFrameというデータ構造に変換し、dfという名前の変数に代入しています。
「import pandas as pd」とは
「pd」は、Pandasの別名を定義するためのコードです。Pandasをインポートする際に「as pd」という文を付けることで、「pd」という短い別名を定義することができます。以降、Pandasの機能を呼び出す際には、「pd.メソッド名」という形式で呼び出すことができます。
デフォルトオプション
read_csv関数は、デフォルトで以下のようなオプションが設定されています。
オプション名 | デフォルトの動き |
---|---|
delimiter | カンマを区切り文字として使用する。 |
header | 1行目を列名として使用する。 |
index_col | 行ラベルとして使用する列を指定しない。 |
dtype | データ型を自動的に推測する。 |
encoding | ファイルのエンコーディングを自動的に推測する。 |
これらのオプションは、必要に応じて変更することができます。
次に、代表的なオプションをいくつか紹介します。
delimiterオプション
delimiterオプションは、区切り文字を指定するためのオプションです。
デフォルトではカンマが区切り文字として使用されますが、タブやセミコロンなど他の文字も指定することができます。以下は、タブを区切り文字として使用する例です。
import pandas as pd
df = pd.read_csv('sample.tsv', delimiter='\t')
delimiterオプションに\tを指定しているため、タブ区切のCSVを読み込むことができます。
headerオプション
headerオプションは、列名を指定するためのオプションです。
デフォルトでは、CSVファイルの1行目が列名として使用されます。
しかし、列名がCSVファイルに含まれていない場合や、列名を別の行に含めている場合は、headerオプションを使って適切な行番号を指定する必要があります。
以下は、列名が含まれていないCSVファイルを読み込む例です。
import pandas as pd
df = pd.read_csv('sample.csv', header=None, names=['A', 'B', 'C'])
header=Noneを指定することで、CSVファイルに含まれる1行目のデータが列名として使用されないようにしています。
また、namesオプションによって、列名を指定しています。
namesオプションは、header=Noneとする場合に必要なオプションです。
index_colオプション
index_colオプションは、行ラベルとして使用する列を指定するためのオプションです。
デフォルトでは、行ラベルは自動的に振られますが、CSVファイルに含まれる特定の列を行ラベルとして使用したい場合に指定します。
以下は、ID列を行ラベルとして使用する例です。
import pandas as pd
df = pd.read_csv('sample.csv', index_col='ID')
index_col='ID'を指定することで、ID列が行ラベルとして使用されます。
dtype
オプション
dtypeオプションは、列ごとにデータ型を指定するためのオプションです。
デフォルトでは、read_csv関数はデータ型を自動的に推測しますが、特定の列についてはデータ型が異なる場合に指定することができます。
以下は、Date列を日付型、Price列を浮動小数点数型として読み込む例です。
import pandas as pd
df = pd.read_csv('sample.csv', dtype={'Date': 'datetime64', 'Price': 'float'})
dtypeオプションに、Date列とPrice列に対してそれぞれ適切なデータ型を指定しています。
encodingオプション
encodingオプションは、ファイルのエンコーディングを指定するためのオプションです。
デフォルトでは、read_csv関数はエンコーディングを自動的に推測しますが、CSVファイルが異なるエンコーディングで保存されている場合に指定することができます。
以下は、UTF-8エンコーディングで保存されたCSVファイルを読み込む例です。
import pandas as pd
df = pd.read_csv('sample.csv', encoding='utf-8')
encoding='utf-8'を指定することで、UTF-8エンコーディングで保存されたCSVファイルを読み込みます。
skiprowsオプション
skiprowsオプションは、読み込みをスキップする行を指定するためのオプションです。
デフォルトでは、読み込みをスキップする行はありませんが、CSVファイルに不要な行が含まれている場合に指定することができます。
以下は、1行目と3行目をスキップして読み込む例です。
import pandas as pd
df = pd.read_csv('sample.csv', skiprows=[0, 2])
skiprows=[0, 2]を指定することで、1行目と3行目をスキップして読み込みます。
na_valuesオプション
na_valuesオプションは、欠損値として扱う値を指定するためのオプションです。
デフォルトでは、read_csv関数は空白文字を欠損値として扱いますが、CSVファイルに欠損値として扱う値が含まれている場合に指定することができます。
以下は、-を欠損値として扱う例です。
import pandas as pd
df = pd.read_csv('sample.csv', na_values=['-'])
na_values=['-']を指定することで、-を欠損値として扱います。
ひとり親家庭・働く女性支援!MamaEduプロジェクト!
ひとり親家庭の方々に向けた、Webスキルを身に着けることができる「インターネット・アカデミー」をご紹介します。インターネット・アカデミーは、1995年に開校した日本初のWeb専門スクールで、Webデザイン、Webマーケティング、プログラミング、動画編集など、現場で活躍できるIT人材の育成を行っています。3万人以上の卒業生が活躍しており、2022年にはTBSテレビ「news23」のSDGs特集でも紹介されるなど、注目を集めています。
特に、ひとり親向けの給付金制度を活用した場合、最大で193万円受給しながら勉強ができるという大変お得なシステムがあります。Webデザイン、Webマーケティング、プログラミングなど、15コース以上の給付金対象のコースがあり、国の給付金を活用して学べる点が魅力です。また、キャリアプロデューサーによる就職支援や、女性向けの「mamaeduプロジェクト」など、ひとり親家庭の方々をサポートする取り組みも充実しています。
Webスキルを身に着けることによって、将来的には自分自身のキャリアアップにもつながりますし、求人市場でも高い需要があります。是非、インターネット・アカデミーを通じて、新しいスキルを身に着け、将来の夢を実現してみてはいかがでしょうか。
投稿
- SQL基礎知識〜データ型編〜 (2021年11月28日)
- SQL基礎知識〜PRIMARY KEY編〜 (2021年11月28日)
- SQL基礎知識〜テーブルの制約編〜 (2021年11月29日)
- SQL基礎知識〜DROP・DELETE・TRUNCATE編〜 (2022年4月2日)
- Anacondaをインストール|pythonが動く環境を構築しよう (2022年4月4日)
- Spyder5の日本語化|pythonを書きやすくしよう (2022年4月10日)
- pythonでPOS+foodレジ(ポスタスフード)の管理画面から売上CSVをダウンロードする|自作する業務自動化ツール (2022年5月29日)
- Pythonでファイルやフォルダを自動でバックアップする方法|自作する業務自動化ツール (2022年7月17日)
- PythonのrequestsライブラリでHTTPリクエストを送信する方法:基本的な使い方からファイルのアップロード、セッションの使用まで (2023年3月18日)
- Pythonのrequestsライブラリで学ぶHTTPエラー処理の基本 (2023年3月19日)
- CSVファイルをPandasで読み込もう!read_csvの使い方とオプション解説 (2023年3月21日)
- データ集計を簡単に!Pandasのgroupby()メソッドの活用法 (2023年3月22日)
- Python Lambda関数入門:便利な書き方と使い方 (2023年3月23日)