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

More than 1 year has passed since last update.


はじめに

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")