
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