s平面の左側

左側なので安定してます(制御工学の話は出てきません)

pandas わかるマンになりたいメモ

ここ半年くらいでデータをいい感じに「えいやっ」てやる機会が増えました。

こういうときは主に pandas を使おうとしているのですが、いつも「pandas わからん」ばかり言っています。

「わからん」って言っているだけでは進歩が無いので、これまでに理解した基本概念についてまとめてみました。

具体的なメソッドの使い方はドキュメントを見ればいいと考えているので、基本概念・操作がメインです。

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() 関数みたいな感じ

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 は &| で演算できる

とりあえず今回はここまで。

今後も気が向いたら投稿します。