どうも!僕です!
つか〇です!
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によるデータ分析入門」がおすすめです.
一緒にデータ分析への道を極めて,新しい価値を見出していきましょう!!
コメント