Help us understand the problem. What is going on with this article?

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")
hik0107
メルカリという会社で分析やっています ⇛ 詳しくはhttps://goo.gl/7unNqZ / アナリスト絶賛採用中。/ Twitter ⇛ https://twitter.com/hik0107 最近はもっぱら物書きは note ⇛ https://note.mu/hik0107
https://note.mu/hik0107
mercari
フリマアプリ「メルカリ」を、グローバルで開発しています。
https://tech.mercari.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした