lupinus's diary

データを扱う系のお仕事に就く予定で、縫物したり自転車に乗るのが好きな人の色んな記録を行う予定のブログ

Python | pandasのデータ型について


この記事に書いてあること

  • pandasの概要について
  • pandasのデータ型(シリーズ、データフレーム、パネル)について

はじめに

Rでずっとdplyrを使っていたのでデータフレーム型を使えるpandasはとても重宝しています。 今回はpandasについてまとめてみます。

Pythonのライブラリpandasの概要

Pandasの名前の由来はpan(el)-da(ta)-sというらしいです。
パンダ好きがつけたと思っていたのですがそういうわけではないようですw
一応公式はこちら

pandasでできる処理は以下のようなことになるようです。

  • データを入出力する機能(csv, tsv, RDB, HDF5, Excelなど)
  • データを効率よく高速に処理できる形式でデータを格納
  • データの一部取り出しや結合
  • データの柔軟な変更やピボット処理
  • データに対する統計処理や回帰処理など
  • データの集約とグループ演算

それぞれについては別のところでまとめようと思います。

データ型について

pandasはデータを保持しておくデータ構造は、1次元、2次元、3次元のデータの格納に適した形になっており、それぞれ シリーズ、データフレーム、パネル の形式で全3種類のがあります。

シリーズ

シリーズは1次元のデータ保存用のデータ構造。下のように数値だけでなく文字も混在して中に入れることができます。

In[1]: dat = pd.Series([1, 'apple', range(3)])
In[2]: print(dat)
Out[2]:
0            1
1        apple
2    (0, 1, 2)
dtype: object

一応データ型を確認すると、

# データ型の確認
In[]: type(dat)
Out[]: pandas.core.series.Series

# 配列のサイズの確認
In[]: dat.shape
Out[]: (3,)

こんな感じです。

データフレーム

データフレームは2次元のラベル付きデータ構造です。エクセルみたいなイメージですね。

# dict型としてデータを格納
In[1]: dat2 = {'自転車':['Anchor', 'GIANT', 'Bianchi'],
       'size':[490, '', 'その他']}
# dict型からデータフレームに変換
In[2]: dat2 = pd.DataFrame(dat2)

一応データ型を確認すると、

# データ型の確認
In[]: type(dat2)
Out[]: pandas.core.frame.DataFrame

# 配列のサイズの確認
In[]: dat2.shape
Out[]: (3, 2)

こんな感じです。