LoginSignup
218
254

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-09-19

はじめに

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

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

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

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

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

計算をしてみよう

◆統計量演算

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

#列方向の合計 
df_sample["score1"].sum(axis=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")
218
254
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
218
254