どらちゃんのポッケ

R・統計・技術メモなど勉強ログ置き場

pythonによるデータ分析入門を写経していく(その3)

  • この本

データの縦横変換と集約

  • pandas.unstack()

  • ちなみに逆のstack()もあって、これは1列にまとめるメソッド

          In [180]: by_tz_os.size().unstack().stack()
          Out[180]:
          tz
                                          not_windows    245
                                          windows        276
          Africa/Cairo                    windows          3
          Africa/Casablanca               windows          1
          Africa/Ceuta                    windows          2
          Africa/Johannesburg             windows          1
          Africa/Lusaka                   windows          1
          America/Anchorage               not_windows      4
                                          windows          1
          America/Argentina/Buenos_Aires  not_windows      1
          America/Argentina/Cordoba       windows          1
    
  • Rでも同じようなメソッドがあるみたい

ソートして、ソート順番を返す

積み上げ棒グラフ

  • kindでbarhを指定すると棒グラフで、stackedで積み上げ

      In [204]: count_subset.plot(kind='barh',stacked=True)
      Out[204]: <matplotlib.axes.AxesSubplot at 0x109136190>
    
  • f:id:sleeping_micchi:20140410225727p:plain

正規化

  • 下記のようなデータの行ごとの合計値をだしてcount_subset.sum(1)
  • その合計値で、各セルのデータを割って、パーセント化する
    • データフレームの縦に対して行うのか、横に対して行うのか、axisの概念が把握できてない・・・

                         not_windows  windows
        tz
        America/Sao_Paulo             13       20
        Europe/Madrid                 16       19
      

In [205]: normed_subset = count_subset.div(count_subset.sum(1),axis=0)

ふたたびplot

In [206]: normed_subset.plot(kind='barh',stacked=True)
Out[206]: <matplotlib.axes.AxesSubplot at 0x1091c71d0>