PandasのDataFrameが良く分かりません。
表のような形式のデータ型だ。
DataFrameを使いこなせるととても便利だぞ。
✔️ 本記事のテーマ
PandasのDataFrameについて
✔️ 読者さんへの前置きメッセージ
本記事は「PandasのDataFrame」について書いています。
この記事を読むことで
「DataFrameについて や DataFrameの使い方」を理解できます。
DataFrameはPandasライブラリのデータ型です。
DataFrameを使うことで、表形式で視覚的かつ直感的なデータ操作が可能になります。
その特性からデータ分析や機械学習の前処理などでも頻繁に使用されます。
ただし、DataFrameは使い方が難しく、
計算速度が遅くなってしまったり、エラーで落ちてしまうことも珍しくありません。
そこでこの記事ではそんなDataFrameについて、基本から応用まで使い方を徹底解説します。
それでは、PandasライブラリのDataFrameについて解説していきましょう。
PandasのDataFrameとは?
DataFrameは簡単にいうと、excelの表のような形式のデータ型です。
表形式なので、列と行、そして行名と列名を定義することができます。
どういうことか実際のコードを使って、説明しましょう。
import pandas as pd
sample_1 = pd.DataFrame([[1, 2, 3], [4, 5, 6]], index=['a', 'b'], columns=['c', 'd','e'])
このようにコードで定義したDataFrameをJupyterで表示すると以下のように表示されます。
このように行と列があり、それぞれ行名、列名が定義された表形式で、
データを管理することができます。
DataFrameを使うことで視覚的に分かりやすく、データを管理することができます。
プログラムの中で分かりやすくデータを管理することができるので、
データ分析の世界で活用されています。
なお、Pandasについての詳しい解説は
「PythonライブラリのPandasを徹底解説!」の記事で書いています。
次から、DataFrameの作り方や使い方を解説していましょう。
PandasのDataFrameをつくる
PandasのDataFrameの定義(つくり方)を説明していきましょう。
DataFrameは二次元配列で値を、引数で列名や行名を定義します。
DataFrameの定義方法は以下の通りです。
pd.DataFrame(二次元配列, index=行名のリスト, columns=列名のリスト)
実際のコードで説明しましょう。
import pandas as pd
sample = pd.DataFrame([[1, 2, 3], [4, 5, 6]], index=['a', 'b'], columns=['c', 'd','e'])
このコードでは、値を[[1, 2, 3], [4, 5, 6]]として二次元配列で定義します。
そして、行名を[‘a’, ‘b’]、列名を[‘c’, ‘d’, ‘e’]と引数で指定しています。
なお、行名と列名を指定しないと、自動的に番号が割り振られます。
sample_2 = pd.DataFrame([[1, 2, 3], [4, 5, 6]])
このように二次元配列の使い方さえ抑えておけば、DataFrameを使うハードルはグッと下がります。
ちなみに、indexやcoloumnsで指定する数字と、
値の二次元配列の形状が一致しないとエラーになります。
PandasのDataFrameから値を取得する
PandasのDataFrameの任意のデータにアクセスする方法はいくつかあります。
以下が代表的な方法です。
- at
- iat
atもiatも特定の値を取得するメソッドですが、atは列名と行名で、iatは番号で指定します。
使い方はそれぞれ以下の通りです。
DataFrame.at[行名, 列名]
DataFrame.iat[行番号, 列番号]
コードで解説しましょう。
import pandas as pd
sample = pd.DataFrame([[1, 2, 3], [4, 5, 6]], index=['a', 'b'], columns=['c', 'd', 'e'])
このDataFrameに対して、at、iatをそれぞれかけていきましょう。
value_at = sample.at['a', 'c']
# 1
value_iat = sample.iat[0, 2]
# 3
このようにat、iatを使うことで簡単にDataFrameのデータにアクセスすることができます。
PandasのDataFrameから列ごと取得する
DataFrameでは、単体の値だけでなく、列をまるごと取得することもできます。
列ごと取得するためには、以下のように行名を指定します。
DataFrame[行名]
実際のコードで解説しましょう。
index = sample['c']
このようにDataFrameは列単位でデータを取得することができるのも使い勝手の良さの一つです。
PandasのDataFrameから行ごと取得する
DataFrameでは、列と同じように、行をまるごと取得することもできます。
行ごと取得するためには、以下の2つの方法があります。
- DataFrame[行名のリスト]
- DataFrame[行番号のリスト]
実際のコードで解説しましょう。
column_1 = sample[:'a']
column_2 = sample[1:]
リスト形式で指定する必要があるのが少し難しいですが、
:(スライス)を使うことでグッと使い勝手が良くなります。
少し補足説明すると、
[:’列名’]と指定すると一番上からその列までを取得します。
[‘列名’:]と指定するとその列から一番下までを取得します。
DataFrameやPandasについてもっとスキルをつけるなら
今回は、PandasのDataFrameについて解説しました。
Pandasはデータサイエンスの世界でよく使われるライブラリです。
Pandasについて基礎から実用まで学ぶためには以下の書籍がオススメです。
この書籍はPandasライブラリについて徹底解説されています。
Pandasライブラリは表計算ライブラリの使い方を理解していないと
その威力を存分に発揮できないのですがこの書籍はこの辺を上手に説明してくれています。
また、ライブラリ自体の解説だけでなく
機械学習において大事なデータクレンジングの方法など実践的な内容まで解説されています。
Pandasについて学びたい方や機械学習の精度を上げたい方にはオススメの書籍です。
エンジニアとしての自身の価値をチェックする(完全無料)
エンジニアとして、
自分の価値がどれくらいのものかご存知でしょうか?
エンジニアとしてIT業界に身を置いていると
今の会社でずっと働くのか、フリーランスとして独立するのか …
と様々な選択肢があります。
どの選択肢が正解なのかを見極めるためにも、選択肢を広げるためにも
自身の価値を知っておくことはとても重要です。
TechClips ME では、
職務経歴書をアップロードするだけで企業からのスカウトを受けることができます。
▼▼▼▼▼
▲▲▲▲▲
しかもTechClips MEでは想定年収を企業から提示してくれるので、
自身の価値を数字で分かりやすくたしかめることができます。
登録はもちろん完全無料なので、一度登録してみると良いかもしれません。
コメント