Python Pandasでのデータ操作の初歩まとめ − 後半:データ集計編

  • 121
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

Pythonでデータ分析を扱う上で必須となる、Pandasでのデータ操作方法の
初歩についてまとめました。

ついつい忘れてしまう重要文法から、ちょっとしたTipsなどを盛り込んでいます。

こんな人にオススメ
→ Pandasを初めて触ってみたい!
→ Rが使えることをPythonでもやってみてーなー
→ Pandasの文法覚えきれねー どっかに一覧があれば便利なのに...
→ そもそもPythonでデータハンドリングってどれくらいできるものなのさ

データの操作についても知りたい方は前半からどうぞ

◆ Python Pandasでのデータ操作の初歩まとめ − 前半:データ作成&操作編
http://qiita.com/hik0107/items/d991cc44c2d1778bb82e

計算をしてみよう

◆統計量演算

データフレームの行、もしくは列ごとの統計量を求める 
math.py

#列方向の合計 
df_sample["score1"].sum(axia=0) # Score1の値の合計を計算
        #axis=0は縦方向にSumするという意味。デフォルトで0なので、省略可能

df_sample[["score1","score2"]].sum(axis=0)  #score1,score2をそれぞれ合計。結果は2つ出力


#行方向の合計
df_sample[["score1","score2"]].sum(axis=1)  
        #各行のscore1とscore2の値を合計。結果は列数ごとに出力される
        #axis=1は横方向にSumするという意味。PandasではAxisでRow方向と」
         Column方向を区別することが多いので覚えておくべし

◆Pivoting

ピボットテーブル的なクロス集計と、データ構造の変換を行う
pivot.py

df_sample.pivot_table("score1",     #集計する変数の指定
                       aggfunc="sum",  # 集計の仕方の指定
                       fill_value=0,   # 該当する値がない場合の埋め値の指定
                       rows="class",     # 行方向に残す変数の指定
                       columns="day_no")   #列方向に展開する変数の指定

◆Group_by 操作

groupby.py
# Pandasでは、Groupbyの操作と、それにともなうAggregationを別々に行います。 
# groupbyメソッドを使うと、見た目は普通のデータフレームですが、Group_ByのKey情報を持ったオブジェクトが生成されます。
# これはRでも同様です。Dplyrではgroupby()によってキーが設定され、そのKeyにともなって、Summariseで集計を行います。

df_sample_grouped = df_sample.groupby("day_no")  # day_noでGroup_byを行う。
df_sample_grouped[["score1","score2"]].sum()          
  # Group化されたされたオブジェクトに対してSumを行う。
  # 必要であれば、Sumを行う変数を指定できる。

# Group_byのKeyは強制的にIndexとして扱われる
# そのため、Group_byを行う前のように、カラム変数として扱うことができない

df_sample_grouped = df_sample.groupby("day_no", as_index=false)
   #   as_index=falseを指定すると、indexとして扱うのをやめてくれる。

データの読みだし、書き出しをしよう

◆データインポート、エクスポート

csvファイルからDFを作成、またはDFをcsvに書き出し
file.py

#csvデータのインポート
pd.read_csv("path_of_data")

#csvデータのエクスポート

pd.to_csv("path_of_exported_file")