目次
当記事について
Python学習を独学でいろいろ手を出してきた結果、YouTube学習に落ち着きました。
記事という体裁をとっていますが、動画視聴後の復習での振り返り用として主に自分に向けて記事を書いています。
YouTube学習を決めた経緯
YouTubeでは数多のプログラマーの方々が非常に有益な情報を発信してくれています。
そんな多くのチャンネルの中からキノコードさんに辿り着いたのは偶然でした。
動画の解説が自分にとっては分かりやすく、初学者に向けて作成してくれている点も視聴開始のきっかけとなりました。
そのため、YouTube学習はキノコードさんのチャンネルに絞って学習しています。
Youtube:キノコード/プログラミング学習チャンネル
データフレームとは
Pandasが得意なデータ解析
- データを取得(データフレーム)
- グループごとに収集
- 並び替えをする
- グラフ化
データフレーム
- Excelの表形式のように行と列で成り立つ
- データベースも同様に表形式である
データフレーム=ラベル付き2次元配列
配列とは、いくつものデータが集まったものである。
配列が1つなら、1次元配列
| A-1 | A-2 | A-3 | A-4 | A-5 |
これが二次元になると縦にデータが広がっていく
| A-1 | A-2 | A-3 | A-4 | A-5 |
| B-1 | B-2 | B-3 | B-4 | B-5 |
| C-1 | C-2 | C-3 | C-4 | C-5 |
データフレームの作成方法
1.リスト型の値を持った配列を使う
| import pandas as pd |

2.NumPyの配列を使う
NumPyとは高速にリストを計算するためのライブラリのことである
| import numpy as np |
| df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=[‘col01’, ‘col02’, ‘col03’], index=[‘idx01’, ‘idx02’, ‘idx03’]) df |
np.arrayは、ココから配列を作りますよーという意味で実際にそれ以後にリストを渡している

indexの名前を取得する
| df.index |

dtype=’object’のobjectは、indexが文字列型ですよってこと
columnsの名前を取得する
| df.columns |

indexのときと同じようにobject型ということが分かった
3.辞書型を使う
| df = pd.DataFrame({‘col01’:[1, 2, 3], ‘col02’:[4, 5, 6], ‘col03’:[7, 8, 9]}) df |

データフレームを作ることができたが、indexを指定していなかったため、データフレームには0、1、2と表示されている。
ここからindexを指定していく。
①indexを追加する
df = pd.DataFrame({‘col01’:[1, 2, 3], ’col02′:[4, 5, 6], ’col03′:[7, 8, 9]}) |
| df.index=[‘idx01’, ‘idx02’, ‘idx03’] df |
最初に書いた記述に追加する形でindexを記述する

うまくindexを追加することができた。
②一緒にindexも記述する
| df = pd.DataFrame({‘col01’:[1, 2, 3], ‘col02’:[4, 5, 6], ‘col03’:[7, 8, 9], index=[‘idx01’, ‘idx02’, ‘idx03’]) df |

これもうまくindexを追加することができた。
columnsもindexも指定しないデータフレームを作る
ここまでデータフレームを作る際にcolumnsやindexを指定して作成してきたが、今度はどちらも指定しないデータフレームを作ってみるとどうなるか。
| df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) df |

このようにcolumnsもindexどちらも指定していないため、0、1、2の数値でデータフレームが作成された。
作成したデータフレームにcolumnsとindexを付け加える
| df.columns-[‘col01’, ‘col02’, ‘col03’] df.index=[‘idx01’, ‘idx02’, ‘idx03’] df |

すると、このような感じでcolumnsとindexが付け加えられた。
columnsの名前を変更する
| df.columns=[‘col04’, ‘col05’, ‘col06’] |
あとからcolumnsを付け加えたのと同じ方法で、名前の変更も可能。
renameメソッドでcolumnsの名前を変更する
renameメソッドで名前を変更する
renameを使うことで、行名や列名を変更することができる
| df = df.rename(columns={‘col04’ : ‘x’}) df |

このように名前をcol4からxに変更することができた
同時に2つ以上の名前を変更する
| df = df.rename(columns={‘col05’ : ‘y’, ‘col06’ : ‘z’}) df |

まとめて2つの名前を変更することができた
renameメソッドでindexの名前を変更する
| df = df.rename(index={‘idx01’ : ‘w’}) df |

idx01からwに変更できたのが確認できた。
データフレームから1列だけ取り出す方法
| df[‘x’] |

このように1列だけ取り出すことができた。
dtype:int64というのは取り出した部分が数値ですよーという意味
データフレームから1列取り出したときのデータ型を確認する
| type(df[‘x’]) |

すると、Seriesと表記されていることがわかる。
データフレームから1列取り出すとシリーズになる、ということらしい。
データフレーム型のままデータを取得したい場合
| df[[‘x’]] |

なんだかわかりにくいが、書き方をちょこっとかえるだけで、データの型が変わるということ
- df [ ‘ X ‘ ] ( [ ]がひとつだとシリーズになる )
- df [ [ ‘ x ‘ ] ] ( [ [ ] ] のように2つ使うとデータフレーム型になる )
locメソッドで列を取得する
locメソッドとは
locは行名や列名を指定して、行や列を取得することができる
| df.loc[ ‘ w ‘ ] |

locメソッドで行と列を指定して取得する

| df . loc[ ‘ idx01 ‘ , ‘ col02 ‘ ] |

しっかりとデータを取り出すことができた。
locメソッドで列全体を取得する
| df . loc [ : , ‘ col01 ‘ ] |
loc[ : , ]の「:」は全部という意味をもつ

col01の列全体を取得することができた
ilocメソッドで列を取得する
- locメソッド:indexやcolumnsの「名前」を指定してデータを取得する
- ilocメソッド:行や列の「番号」を指定して行や列を取得する
| df . iloc [ : , 0 ] |

locメソッドで一度に複数のデータを変更する方法
| df . loc [ : , ‘ col03 ‘ ] = [ ‘ Tokyo ‘ , ‘ Osaka ‘ , ‘ Hokkaido ‘ ] df |

スライスを使ってデータを取得する方法
スライス:リストや辞書型のようなデータが順番に並べられたものを取り出したいときにつかう操作のこと
| df . loc [ : , ‘ col02 ‘ : ‘ col03 ‘ ] |

ilocメソッドで複数列を取得する方法
| df . iloc [ : , 1 : 3 ] |
iloc [ A : C]と記述した場合、対象となるのはAとBになり、Cは含まれないので注意する必要がある

get_locメソッドを使い、行番号を取得する
get_loc( 引数 ):引数に列名を入れると、行番号や列番号を取得することができる
| df . index . get_loc ( ‘ idx03 ‘ ) |

get_locメソッドで列番号を取得する
| df . columns . get_loc ( ‘ col02 ‘ ) |

get_locメソッドで要素を変更する
| df. iloc [df .index .get_loc ( ‘ idx03 ‘ ) , df . columns . get_loc ( ‘ col02 ‘ ) ] = 1000 df |

データフレームの行数と列数を取得する方法
shapeを使うと行数と列数をまとめて取得することができる
| df . shape |

このデータフレームが3行3列のデータということがわかる。
indexとcolumnsを入れ替える方法
データフレームの行と列を入れ替える方法

上のデータフレームのindexとcolumnsを入れ替える
| df = df . T |

うまく入れ替えることができた。
まとめ
今回のデータフレームについては何度か動画視聴して実際にコードも書いてみたものの、あまりしっくりきていない。
前回のように具体的なデータを用いていないからかもしれない。
実際にデータを扱うようになったら、腹落ちするようなことがあるかもしれないが、現時点ではもやもやした感じが残る。
補足
この項はプログラミング言語PythonのライブラリであるPandasの学習復習用に整理したものである。
YouTubeチャンネル/キノコードさんが解説する動画を視聴し、あとで自分で見直しながらコードを書いていけるように内容をまとめたもの。
Solo-Yase 
