【Python】Pandasデータフレーム操作方法 初級

Python
この記事は約4分で読めます。

今回はPythonでよく利用するプラグインPandasの操作方法についてお話しします。
よく利用するプラグインですので、使い方を動かしながら習得しましょう。

データはこちらを利用します。
データ量が多いのでkaggleでnotebookを作成して実行しています。
お好きなPython実行環境でお試しください。
データはcsvやExcelなどお好きなデータで良いです。

Novel Corona Virus 2019 Dataset
Day level information on covid-19 affected cases

コードの準備

import pandas as pd

df = pd.read_csv("/kaggle/input/novel-corona-virus-2019-dataset/covid_19_data.csv")

df = pd.read_csv("/kaggle/input/novel-corona-virus-2019-dataset/covid_19_data.csv", header=1)

df = pd.read_csv("/kaggle/input/novel-corona-virus-2019-dataset/covid_19_data.csv", encoding="shift-jis")

df.loc[df['Country/Region'] == 'Japan'].head()

df[df['Country/Region'] == "Japan"].head()

df.sort_values('Last Update', ascending=False)

csvの読み込み

ヘッダーの指定をせずに読み込む

df = pd.read_csv("/kaggle/input/novel-corona-virus-2019-dataset/covid_19_data.csv")

pd.read_csvでパスを指定することでcsvファイルをDataFrameとして読み込むことができます。
第二引数にheaderを指定しない場合はheader=0つまり、csvの1行目がheader扱いになります。

ヘッダーの指定をして読み込む

pd.read_csv("/kaggle/input/novel-corona-virus-2019-dataset/covid_19_data.csv", header=1)

第二引数にheader=1と渡すことでcsvの1行目を飛ばして読み込むことができます。

エンコーディングを指定して読み込む

csvのエンコードに合わせて指定することができます。
日本語で記述されたファイルで読み込み時に文字化けしてしまう場合は
encodingで指定しましょう。だいたいshift-jisです。

df = pd.read_csv("/kaggle/input/novel-corona-virus-2019-dataset/covid_19_data.csv", encoding="shift-jis")

指定しない場合はutf-8で読み込まれ、ファイルがutf-8出ない場合はエラーとなってしまいます。

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

データフレームを抽出する

データ分析でよく利用するPandas操作として読み込んだDataframeから使用するカラムだけ抽出する方法です。

locで抽出する

用意されてるデータセットは世界のデータなので日本のデータだけ抽出する場合は
Country/RegionがJapanのものだけ抽出します。
Dataframeの中でif文がそのまま利用できるのは便利ですね。

df.loc[df['Country/Region'] == 'Japan'].head()

直接抽出する

df[df['Country/Region'] == "Japan"].head()

locを利用せず直接指定して抽出することもできます。

何度か利用しているheadはデータフレームの上から5件取得する関数です。
引数を渡せば指定した件数を取得できます。

tailを利用するとデータフレームの下から5件取得できます。
(あまり使いませんが・・・)

ソートする方法

ランキングを表示する場合や、累積比を計算する場合などソートする場面はたくさんあります。

df.sort_values('Last Update')

降順、昇順はascendingで指定します。指定しない場合はデフォルトで昇順です。
Falseを指定すると降順になります。

df.sort_values('Last Update', ascending=False)

さいごに

今回はPythonのPandasの操作方法として

・csvの読み込み
・抽出
・ソート

について普段利用しているもののみピックアップしてご紹介させていただきました。
他にもたくさんありますので段階的にご紹介させていただきます。

タイトルとURLをコピーしました