LoginSignup
0
1

More than 3 years have passed since last update.

【Pandas】DataFrameとは?DataFrameに使えるメソッドとアトリビュート no.10

Last updated at Posted at 2021-03-16

見出しを追加 (32).png
こんにちは、まゆみです。

Pandasについての記事をシリーズで書いています。

今回の記事は第10回目になります。

今日から少しの間、Pandasの基本となる2つのデータストラクチャ―のうちの1つである『DataFrame』についての記事を書いていきます。

(PandasではSeries とDataFrameの2つが主要なデータストラクチャ―と考えられ用いられています。Seriesに関してはno.9 以下の記事をご覧ください。)

今回使うデータ

2008年.png

少し古いですが2008年のMLBのデータを使いますね。

MLB選手のそれぞれのデータが出ていて面白いと思います(マネーボールという映画を思い出しました。(笑)統計学を使って弱小チームを優勝に導いた実話をもとにした映画です)

では、さっそくMLBの選手を分析しつつDataFrameの解説をしていきますね。

※今回のデータは下記のようなCSVデータになります

スクリーンショット 2021-03-16 094444.jpg

SeriesとDataFrameの違い

Series とDataFrame の違いを簡単に言うなら

本文を追加 (4).png

DataFrame がエクセルシートのシート全体

Seriesがエクセルの各コラム

になりますが、もう少し詳しく深堀りしてみましょう

Pandas のドキュメントから、SeriesとDataFrame についての定義を抜粋してみました。

スクリーンショット 2021-03-16 074226.jpg

スクリーンショット 2021-03-16 074304.jpg

引用元:Pandasドキュメント

Two dimensional(2次元の) とか One dimensional(1次元の) とかって具体的にどういうことでしょうか?

One dimensional とは?

先ほど、Series とはエクセルシートの1コラムだけで作られたオブジェクトだということを申し上げました。

スクリーンショット 2021-03-16 075655.jpg

Series とは上のスクショのような構造になっています。

例えば上記のような構造になっているSeriesの中の、あるアイテムを特定したい時は、左横のrowの数値のみを指定すれば足りますよね。

なので、Series は One dimensional なデータだと定義されているのです。

Two dimensional とは?

Pandas で作るDataFrame オブジェクトはTwo dimensional と定義されています。

スクリーンショット 2021-03-16 080217.jpg

例えば上記の例で『green tea』を指定するには、

rowと

column名

二つを指定しなければいけません。

なのでTwo dimensional なデータです。

DataFrame はエクセルシート全体だと便宜上申し上げましたが、必ずしもデータの全部のみがDataFrame なのではなく、データを一部分だけ使うとしても、もし2つのポイントを指定しなければいけない時は『DataFrame』になりますので、そちらの理解でよろしくお願いします。

SeriesとDataFrameで共通して使えるアトリビュートとメソッド

SeriesとDataFrameは分けて考える必要があります。

なぜならば、SeriesとDataFrameでは、使えるアトリビュートとメソッドが違う場合があるからです。

『違う場合がある』と言ったのは、一方では共通して使えるアトリビュートとメソッドもあります。

では共通して使えるアトリビュートとメソッドを下記に書いていきますね。(基本的な物だけを並べたので、もう少し詳しく知りたい方は、Pandasのドキュメントを見てくださいね)

Series と同じ要領でCSVファイルを読み込みます
 
(CSVファイルの読み込み方が分からない方はこちらの記事を参考にどうぞ)

実行結果は下記のようになりました。

スクリーンショット 2021-03-16 094629.jpg

head()

スクリーンショット 2021-03-16 095142.jpg
引用元:Pandasドキュメント

head()メソッドは、データの最初の行5行分の値を返してくれます

デフォルト値は5でして、あなたの表示したい行数を引数に取るとその行分のデータを返してくれます。

実行結果は下記のようになります

スクリーンショット 2021-03-16 095427.jpg

tail()

head()が最初の5行なら、tail()は最後の5行を返してくれます。

それ以外はhead()メソッドと同じなので詳しい説明は端折りますね。

index

index はrow に自動的に記載されるindex についての情報を返してくれます

スクリーンショット 2021-03-16 095729.jpg

スクリーンショット 2021-03-16 100010.jpg

start =row の始まりの数字

stop= row の終わりの数字

step =いくつづつインデックスの数字が増えているか

values

スクリーンショット 2021-03-16 131123.jpg

ラップしているデータ配列を取り出してくれます

shape

スクリーンショット 2021-03-16 100630.jpg

データのrow数(何列のデータなのか?)と

データのcolumn数(何行のデータなのか?)

をタプルで返してくれます

dtypes

Series の場合はコラムが1行だけなので dtype ですが、DataFrame はコラムが2行以上になるので

dtypes

と複数形になります

それぞれのコラムがどのデータ型になるか(integer(整数) なのかfloat(小数点)なのかなど)を返してくれます。

スクリーンショット 2021-03-16 101244.jpg

DataFrame に独自のアトリビュート

columns

Series にはそもそもcolumnが1行しかないので、columnsというアトリビュートはDataFrameに独自の物になります

columnsでは、コラム名を返してくれます

スクリーンショット 2021-03-16 101859.jpg

まとめ

今回はこれくらいで終わりにします。

DataFrame の基礎の基礎だけお伝えさせていただきました。

次回はもう少し詳しく掘り下げていこうと思います

よろしくお願いします!

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1