Python プログラミング

【Python】pandasのgroupbyで日ごとの数値データを集計する

この記事は約2分で読めます。

 

こんにちは、ミナピピン(@python_mllover)です。

 

最近業務でpandasのgroupbyでbigqueryと同じような感じでDAUを集計したいなあと思ったのですが、よくよく考えるとpandasってbigqueryのDATE()みたいにタイムスタンプを便利に変換して集計期間の単位を変更できるのか。。。?って思っていたのですが、pd.Grouper()という関数を用いて簡単に行うことが可能らしいです。

 

サンプルデータの作成

 

まずは適当にサンプルデータを作成します。

 

import random 
import datetime 
import pandas as pd 
now = datetime.datetime.now() 
data = [] 
for i in range(1,4): 
    id_ = i 
    for s in range(5): 
        login_datetime = now.replace(day=random.randint(i+1,10), hour=random.randint(1,23), minute=0, second=0, microsecond=0) 
        data.append([id_, login_datetime]) 
df = pd.DataFrame(data,columns=['user_id', 'login_datetime'])

 

DAUの集計

 

# DAU(日ごとのログインユーザ数を集計)
df.groupby(pd.Grouper(key='login_datetime', freq='1d')).count()

 

freqで頻度を変えて集計することも可能です。

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

  1. […] 関連記事:【Python】pandasのgroupbyで日ごとの数値データを集計する […]

  2. […] 関連記事:【Python】pandasのgroupbyで日ごとのデータを集計する […]

タイトルとURLをコピーしました