Python

データフレーム(DataFrame) Pandas入門

更新日:

pandasのデータ構造であるデータフレーム(DataFrame)について、説明します。
シリーズ(Series)と同様、Pandasを活用するのに知っておくべきデータ構造です。

実行環境
Windows 10
Miniconda3 4.5.12(64bit)
開発環境
IPython 7.2.0
Jupyter Notebook

必要なライブラリ
pandas
ライブラリのインストール方法
Anacondaプロンプトを立ち上げて、下記コマンドでインストールして下さい。

conda install pandas

以上で準備が整いました。

データフレーム(DataFrame)とは

データフレームはテーブル形式のデータ構造で、順序付けられた列を持っています。以下の特徴を持っています。

・各列には異なる型(数値型、文字列型、ブール型など)が持てる
・行と列にインデックスを持っている
・内部データはリストやディクショナリ、1次元か2次元以上の形式で保存されている

データフレームを使って、テーブルを作成してみましょう。

In[1]: import pandas as pd
In[2]: from pandas import DataFrame

In[3]: data = {'era name': ['meiji', 'taisho', 'showa', 'heisei'],
               'year of start': [1868, 1912, 1926, 1989],
               'month of start': ['january', 'july', 'december', 'january'],
               'number of years': [45, 15, 64, 31]}
            
In[4]: table = pd.DataFrame(data)
In[5]: table

out[6]:

JupyterNotebookだと上図のようにHTML形式の表として出力されます。
作成されるデータフレームは、シリーズと同様に自動的にインデックスが代入されます。

データフレーム(DataFrame)の列を追加する方法

列をシリーズを使って追加してみます。
シリーズの[]内に値を入れ、インデックスにtableのインデックスを参照し、名前に列名として'emperor name'を設定します。
シリーズについては、こちらを参照ください。

In[7]: from pandas import Series

In[8]: series = pd.Series(['meiji tenno', 'taisho tenno', 'showa tenno', 'kinjo tenno'],
                   index=table.index, name='emperor name')
            
In[9]: table[series.name] = series
In[10]: table

out[11]:

最右列に'emperor name'が追加されました。
続いて、行を追加します。

データフレーム(DataFrame)の行を追加する方法

行の追加にはlocという属性を使います。
locはデータフレームの行をラベルを指定することで選択することができます。4行目に新しく追加します。

In[12]: table.loc[4] = (['reiwa', 2019, 'May', 'NaN', 'NaN'])
In[13]: table

out[14]:

NaNは欠損値です。
locで追加する場合は、列数に応じた値を入れないとエラーになりますので注意ください。

その他にも列や行に追加する方法はあります。
以下を参考にして下さい。

データフレーム(DataFrame)の参考情報

Pandas DataFrame公式リファレンス

レクタングル(大)

レクタングル(大)

-Python

Copyright© nimorlog , 2019 All Rights Reserved Powered by STINGER.