Python, pandasの基礎④ ~データフレームの特徴と作成,基本操作編~

記事内に広告が含まれています。

どうも!僕です!
つか〇です!

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とは?NumPyの構造,扱いを知ろう!!編~」から順に紹介していますので参考にしてください.
また,pandasの特徴や,シリーズについては,「Python,pandasの基礎① ~pandasの特徴とデータ構造「Series」~」から順に紹介しています.

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

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

コメント

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