ここ半年くらいでデータをいい感じに「えいやっ」てやる機会が増えました。
こういうときは主に pandas を使おうとしているのですが、いつも「pandas わからん」ばかり言っています。
pandas わからん
— おかしょい@アーキテクト 兼 技術広報 (@okashoi) 2019年1月29日
定期的に「pandas わからん」っていう bot と化している
— おかしょい@アーキテクト 兼 技術広報 (@okashoi) 2019年1月31日
pandas わからん(定期)
— おかしょい@アーキテクト 兼 技術広報 (@okashoi) 2019年4月2日
pandas わかるマンになりたい
— おかしょい@アーキテクト 兼 技術広報 (@okashoi) 2019年6月14日
「わからん」って言っているだけでは進歩が無いので、これまでに理解した基本概念についてまとめてみました。
具体的なメソッドの使い方はドキュメントを見ればいいと考えているので、基本概念・操作がメインです。
DataFrame と Series
- 基本的な型
- それぞれ行列とベクトルみたいなもの
- DataFrame の行も列も Series
- これに加えて
numpy.array
とかがでてきたりする
Index と Column
- Index は DataFrame の行を識別するもの
- 複合の Index もできる
- Column は DataFrame の列を識別するもの
- ただし、これらは 1 つの DataFrame のなかで一意である必要はないみたい?(わからん)
set_index()
メソッドで特定の Column の値を Index にできる- もともとの Index は消えてしまうので注意(勝手に Column になったりしない)
reset_index()
メソッドで 0 開始の連番を Index として振ることができる- PHP でいう
array_values()
関数みたいな感じ
- PHP でいう
DataFrame のプロパティ
以下、 df
という変数が DataFrame のエンティティである、という前提
df.index
で Index を取得df.columns
で Column を取得df.shape
で行数, 列数
のタプルdf.T
で転置
添字アクセスがなんかめっちゃ強い
df['hoge' == 1]
のようにして Boolean の Series ができる(Column'hoge'
の値が 1 ならTrue
)df[<Boolean の Series>]
で True のものだけ抜き出せる- つまり
df[df['hoge' == 1]]
みたいな書き方で条件により抜き出しができる - Boolean の Series は
&
や|
で演算できる
とりあえず今回はここまで。
今後も気が向いたら投稿します。