👋

この記事で解決! python: pandasの基本

2023/06/08に公開

※pandadを学習するにあたり、Pythonの基礎知識が必要です。変数、データ型、制御構造(条件分岐やループ)、関数、クラスなどについての理解がある前提として書いています。

pandasとは

pandasは、データ操作や分析において非常に便利なライブラリです。2次元の表形式データの処理に長けており、財務、統計、その他多くの分野で使えます。

pandasによるデータ処理機能

  • データの入出力
    CSVやExcel、DBなど、さまざまな形式のデータソースから表形式のデータを読み込めます。また、pandasで処理したデータを、各形式のファイルに書き込めます。

  • データの絞り込み
    「列Aが 100 以上の行だけを抽出する」など、指定した条件に合致するデータだけを絞り込めます。

  • データのクリーニング
    「身長のデータなのに負の値になっている」といった異常な値をチェック・修正したり、欠損値を補間・削除するなど、「おかしなデータ」を分析可能な形に整備できます。

  • データの集計
    「店舗ごとの売り上げの合計値を計算する」「ユーザの年齢ごとに契約日数の平均値を計算する」など、グループごとに特定の処理を適用できます。

  • データの統合
    複数のデータをひとつのデータに統合します。単純な連結のほか、SQLのJOINのような異なる種類のデータも結合できます。

  • データの分析・可視化
    各列の基本統計量を計算したり、棒グラフや散布図などいろいろなグラフを作成できます。

DataFrameとSeriesとは

DataFrameとは

DataFrame(データフレーム) とは、2次元の表形式のデータ構造です。pandas.DataFrame クラスを使います。
具体的には、DataFrameは行と列によって構成されるテーブルであり、各行はデータセット内の1つのレコード(データの1つのインスタンス)を表し、各列は特定の属性やフィールドを表します。
ExcelのスプレッドシートやSQLのテーブルといった表形式のデータをイメージすると分かりやすです。

DataFrameは、次のように pd.DataFrame() にリストのリストを渡すことで作成できます。

import pandas as pd
# 33列のDataFrameを作成
df = pd.DataFrame([[10, "りんご", "2022/4/1"],
                   [20, "みかん", "2022/4/2"],
                   [30, "りんご", "2022/4/3"]],
                   columns=["A", "B", "C"])  # 列名の指定

以下出力

Series(シリーズ)とは

Seriesとは1次元のデータ構造で、DataFrameの1列分のデータに相当します。

データの読み込み

先ほどは、pandas.DataFrameクラスを使ってDataFrameを作成しました。しかし実務では、CSVファイルなどの外部データからDataFrameを作成することがあります。

pandasには、さまざまなデータソースをDataFrameとして読み込むための機能が用意されています。たとえば、次のようなデータソースからデータを読み込めます。

  • CSVファイル(.csv)
  • 区切りのあるテキストファイル
  • HTML内のtableタグ(.html)
  • JSON(.json)
  • リレーショナルデータベース
  • Google BigQuery

実践: やってみよう

ここでは、実際にpandas.read_csv()を使ってCSVファイルを読み込み、DataFrameを作成する流れを体験してみます。

ファイル dataset/physical_measurement.csv には、名前・身長・体重のデータが格納されています。

Name,Height,Weight
佐藤,172,53
田中,160,50
鈴木,165,58
高橋,170,59

コードを実行して、CSVファイルからデータを読み込んでDataFrameを作成してみます。

import pandas as pd

# CSVファイルからデータを読み込み
df = pd.read_csv("dataset/physical_measurement.csv")

# 読み込んだデータを確認
df

出力すると、名前・身長・体重のデータが出力されます。

pandasには、いろいろなデータソースに対応した入出力機能が備わっています。たとえば、CSVデータを読み込む時は read_csv() を使います。

ここまで理解できればpandasは使用できると思います。
あとは、応用を繰り返し行うことで、pandasを使いこなせることでしょう。

Discussion