pandas はどのようなデータを扱うか?#

  • pandas を使い始めたい

    In [1]: import pandas as pd
    

    pandas パッケージをロードして使い始めるには、パッケージをインポートします。コミュニティで合意された pandas のエイリアスは pd なので、pandas を pd としてロードすることが、pandas のすべてのドキュメントにおける標準的な慣習とされています。

pandas のデータテーブル表現#

../../_images/01_table_dataframe.svg
  • タイタニック号の乗客データを保存したいとします。何人かの乗客について、名前(文字)、年齢(整数)、性別(男性/女性)のデータを知っています。

    In [2]: df = pd.DataFrame(
       ...:     {
       ...:         "Name": [
       ...:             "Braund, Mr. Owen Harris",
       ...:             "Allen, Mr. William Henry",
       ...:             "Bonnell, Miss. Elizabeth",
       ...:         ],
       ...:         "Age": [22, 35, 58],
       ...:         "Sex": ["male", "male", "female"],
       ...:     }
       ...: )
       ...: 
    
    In [3]: df
    Out[3]: 
                           Name  Age     Sex
    0   Braund, Mr. Owen Harris   22    male
    1  Allen, Mr. William Henry   35    male
    2  Bonnell, Miss. Elizabeth   58  female
    

    テーブルに手動でデータを格納するには、DataFrame を作成します。リストの Python 辞書を使用する場合、辞書のキーは列ヘッダーとして使用され、各リストの値は DataFrame の列として使用されます。

DataFrame は、列にさまざまな型(文字、整数、浮動小数点値、カテゴリカルデータなど)のデータを格納できる 2 次元データ構造です。スプレッドシート、SQL テーブル、または R の data.frame に似ています。

  • テーブルには 3 つの列があり、それぞれに列ラベルが付いています。列ラベルはそれぞれ Name, Age, Sex です。

  • Name は、各値が文字列であるテキストデータで構成され、列 Age は数値で、列 Sex はテキストデータです。

スプレッドシートソフトウェアでは、データのテーブル表現は非常に似たものになります。

../../_images/01_table_spreadsheet.png

DataFrame の各列は Series である#

../../_images/01_table_series.svg
  • Age のデータのみを操作したい。

    In [4]: df["Age"]
    Out[4]: 
    0    22
    1    35
    2    58
    Name: Age, dtype: int64
    

    pandas DataFrame の単一の列を選択すると、結果は pandas Series になります。列を選択するには、角かっこ [] の間に列ラベルを使用します。

注記

Python の 辞書 に慣れている場合、単一の列の選択は、キーに基づいて辞書の値を選択するのと非常に似ています。

Series をゼロから作成することもできます。

In [5]: ages = pd.Series([22, 35, 58], name="Age")

In [6]: ages
Out[6]: 
0    22
1    35
2    58
Name: Age, dtype: int64

pandas Series には、DataFrame の単一の列であるため、列ラベルはありません。Series には行ラベルがあります。

DataFrame または Series で何かをする#

  • 乗客の最大年齢を知りたい。

    これは、DataFrame で、Age 列を選択し、max() を適用することで実行できます。

    In [7]: df["Age"].max()
    Out[7]: 58
    

    または、Series に対して

    In [8]: ages.max()
    Out[8]: 58
    

max() メソッドで示されるように、DataFrame または Series何かをすることができます。pandas は多くの機能を提供しており、それぞれが DataFrame または Series に適用できるメソッドです。メソッドは関数なので、括弧 () を使用することを忘れないでください。

  • データテーブルの数値データの基本的な統計に関心があります。

    In [9]: df.describe()
    Out[9]: 
                 Age
    count   3.000000
    mean   38.333333
    std    18.230012
    min    22.000000
    25%    28.500000
    50%    35.000000
    75%    46.500000
    max    58.000000
    

    describe() メソッドは、DataFrame の数値データの概要をすばやく提供します。Name および Sex 列はテキストデータであるため、デフォルトでは describe() メソッドでは考慮されません。

多くの pandas 操作は、DataFrame または Series を返します。describe() メソッドは、pandas Series または pandas DataFrame を返す pandas 操作の例です。

ユーザーガイドへ

ユーザーガイドの describe による集計 に関するセクションで、describe のその他のオプションを確認してください。

注記

これはほんの始まりにすぎません。スプレッドシートソフトウェアと同様に、pandas はデータを列と行を持つテーブルとして表現します。表現とは別に、スプレッドシートソフトウェアで行うデータ操作と計算も pandas でサポートされています。次のチュートリアルを読み進めて、始めましょう!

覚えておいてください

  • パッケージをインポートします。つまり、import pandas as pd

  • データのテーブルは pandas DataFrame として格納されます。

  • DataFrame の各列は Series です。

  • DataFrame または Series にメソッドを適用することで、処理を実行できます。

ユーザーガイドへ

DataFrame および Series のより詳細な説明は、データ構造の概要 で提供されています。