Pandas入門とDataFrameの基本

pandas とは

pandas とは、プログラミング言語Pythonのデータ分析を行うためのライブラリです。オープンソースでフリーのライブラリとして提供されています。

pandas は、NumPyやMatplotlibと並んでデータ分析や機械学習でよく使われるライブラリです。

pandasには以下のような特徴があります。

  • 高速なデータ操作を行えるDataFrame型を提供する
  • テキストファイルやCSV、Excel、RMDB、HDF5等の形式のデータを相互に読み書きできる
  • データをスライスしてサブセットを取得できる
  • C言語の実装によって高速に動作する
  • NumPyとの連携

pandasのインストール

pandasは、pipを使ってインストールします。

$ pip install pandas

DataFrameとは

DataFrameとは、pandasが提供するデータ型の一つで、行列などの二次元配列のようなデータを扱います。

ここではよく使うものを中心に使い方をまとめていきます。

DataFrameを生成する

DataFrame関数でデータフレーム形式のデータを生成できます。引数でデータをセットします。ndarray(NumPy配列)や辞書のデータで指定できます。

import numpy as np
import pandas as pd # pandas を pd という名前でインポート

# 二次元配列をデータフレーム形式にする
data = np.arange(6).reshape((2, 3))
df = pd.DataFrame(data)

print(df)
#    0  1  2
# 0  0  1  2
# 1  3  4  5

# 辞書型のデータをデータフレーム形式にする
dict = { "col1": np.arange(0, 10), "col2": np.arange(100, 110)}
df2 = pd.DataFrame(dict)

print(df2)
#    col1  col2
# 0     0   100
# 1     1   101
# 2     2   102
# 3     3   103
# 4     4   104
# 5     5   105
# 6     6   106
# 7     7   107
# 8     8   108
# 9     9   109

辞書型で指定した方には、列名が定義されていることが確認できます。

DataFrameの列名を設定する

DataFrameのデータを生成する際の引数columnsで列名を設定する事が可能です。DataFrameの列名を後から上書きすることも可能です。

import numpy as np
import pandas as pd

# columunsで列名を設定する
df = pd.DataFrame(np.arange(12).reshape((3, 4)), columns=["col1", "col2", "col3", "col4"])

# あとから列名を上書きもできる
df.columns = ["col1", "col2", "col3", "col4"]

print(df)
#    col1  col2  col3  col4
# 0     0     1     2     3
# 1     4     5     6     7
# 2     8     9    10    11

DataFrameの構造や情報を確認する

DataFrameに格納されているデータのデータ数や次元数(行数, 列数)を確認することができます。

また、DataFrame.info関数で DataFrameの列名や型などの情報を確認できます。

import numpy as np
import pandas as pd

# 4×3の行列データ
df = pd.DataFrame(np.arange(12).reshape((4, 3)), columns=["col1", "col2", "col3"])

# データ数
print(len(df)) # 4

# 次元数(行数, 列数)
print(df.shape) # (4, 3)


# データ数や列名、データサイズ
print(df.info())
# <class 'pandas.core.frame.DataFrame'>
# RangeIndex: 4 entries, 0 to 3
# Data columns (total 3 columns):
# col1    4 non-null int32
# col2    4 non-null int32
# col3    4 non-null int32
# dtypes: int32(3)
# memory usage: 128.0 bytes
# None

DataFrameの統計量を確認する

データの基本統計量を確認することが可能です。DataFrame.describe関数を使用するとまとめて確認できます。

データの個数、平均値、標準偏差、最小値などなどが一覧で確認できます。個別に取得できる関数としても定義されているので、各列のデータに対して統計量を取得できます。

import numpy as np
import pandas as pd

# 4×3の行列データ
df = pd.DataFrame(np.arange(12).reshape((4, 3)), columns=["col1", "col2", "col3"])

# 中央値や平均値、最大値等の統計量を確認
print(df.describe())
#            col1       col2       col3
# count  4.000000   4.000000   4.000000
# mean   4.500000   5.500000   6.500000
# std    3.872983   3.872983   3.872983
# min    0.000000   1.000000   2.000000
# 25%    2.250000   3.250000   4.250000
# 50%    4.500000   5.500000   6.500000
# 75%    6.750000   7.750000   8.750000
# max    9.000000  10.000000  11.000000

# 平均値
print(df.mean())
# col1    4.5
# col2    5.5
# col3    6.5
# dtype: float64

参考URL