Python pandas:データフレームの特徴と基本操作

スポンサーリンク
Pythonプログラム
記事内に広告が含まれています。

pandasのデータフレーム構造について,その特徴と基本操作について説明します.

「シリーズと何が違うねん!」
「データフレームってどない作んねん!」

そんな風に思ってた私だからこそわかりやすく解説します.

データフレームの特徴

データフレームはテーブル形式のデータ構造をしています.
シリーズは列数が1つですが,データフレームは列を複数持ちます.
そのため,行と列の両方にインデックスが存在します.

また,それぞれの列でデータの型を変えることができます.
どういうことかというと,一列目は数値型,二列目は文字列型という風に別々の型を持たせることができます.

イメージとしては,シリーズをバリューとして持つディクショナリといった感じでしょうか.
(わかりにくかったらすみません!)

次項でデータフレームを実際に扱ってみましょう!

データフレームの作り方

まずデータフレームを使うときに,pandasとDataFrameをインポートしましょう.

import pandas as pd
from pandas import DataFrame

これはおまじないのようなものです.
これを忘れずに!

まずはディクショナリを作成して,そのディクショナリからデータフレームを作ってみましょう!

data = {"City": ["Hikone", "Hikone", "Kusatsu", "Kusatsu", "Kusatsu", "Hikone"],
       "year": [2010, 2011, 2012, 2013, 2014, 2015],
       "data": [3.2, 4.3, 2.1, 3.4, 5.6, 2.5]}                #ディクショナリを作成
frame = pd.DataFrame(data)                                    #データフレーム作成
frame

「pd.DataFrame()」というのにディクショナリを引数として渡せばデータフレームを作成できます.
以下が上記のプログラムの出力になります.


        City	year	data
0	Hikone	2010	3.2
1	Hikone	2011	4.3
2	Kusatsu	2012	2.1
3	Kusatsu	2013	3.4
4	Kusatsu	2014	5.6
5	Hikone	2015	2.5

表ができましたね.
これがデータフレーム構造です.
前項で説明したように,行と列にそれぞれインデックスを持ち,データの型も列によって異なります.

では,ちょっと違う作成の仕方もしてみましょう.
NumPyの配列を使う方法です.
以下のようにやってみましょう.

import numpy as np                  #Numpyをインポート
frame2 = pd.DataFrame(np.arange(20).reshape((4,5)))
frame2

        0	1	2	3	4
0	0	1	2	3	4
1	5	6	7	8	9
2	10	11	12	13	14
3	15	16	17	18	19

数値のデータができましたね.
こういう感じでデータフレームは作成できます.

この「pd.DataFrame()」のところに,「index=」や,「columns=」を指定することができます.

frame2 = pd.DataFrame(np.arange(20).reshape((4,5)),
                     index=["Yamada", "Iwaki", "Hohoemi", "Tonoma"],
                     columns=["HIT", "HR", "RBI", "STILL", "STRIKEOUT"])
frame2


        HIT	HR	RBI	STILL	STRIKEOUT
Yamada	0	1	2	3	4
Iwaki	5	6	7	8	9
Hohoemi	10	11	12	13	14
Tonoma	15	16	17	18	19

こんな感じですね.
このデータは,インデックスとデータが適当ですので,ご承知おきください.

また,データはないけど,新たに列を追加したいときは以下のようにします.

frame3 = pd.DataFrame(data, columns=["year", "City", "data", "data2"])
frame3

        year	City	data	data2
0	2010	Hikone	3.2	NaN
1	2011	Hikone	4.3	NaN
2	2012	Kusatsu	2.1	NaN
3	2013	Kusatsu	3.4	NaN
4	2014	Kusatsu	5.6	NaN
5	2015	Hikone	2.5	NaN

上記のように「data2」が列に追加され,データ部分では欠損値「NaN」が入っています.
欠損値については,後日紹介できればと思っています.

また,「frame」と「frame2」を見比べてもらうと,列の順番が替わっていることがわかると思います.
frame2のように列の順番も指定することで替えることができます.

こんな感じでデータフレームを作ることができます.

まとめ

pandasでのデータフレームの作成方法について紹介しました.
ここがわかっていれば,後は操作してデータの前処理をするだけです!
(それが大変なんですが...)

Numpyについては,「NumPyの基礎 ~NumPyの構造・特徴編~」から順に紹介していますので参考にしてください.
また,pandasの特徴や,シリーズについては,「Python pandas:pandasの特徴とデータ構造「Series」」から順に紹介しています.

データ分析に向けたPythonの基礎は,「Pythonによるデータ分析入門」がおすすめです.

一緒にデータ分析への道を極めて,新しい価値を見出していきましょう!!

コメント

タイトルとURLをコピーしました