LoginSignup
10
9

More than 5 years have passed since last update.

RのdplyrとPythonのpandasで, 処理速度の比較をしてみました

Posted at

はじめに

Rのdplyrとpythonのpandasで, 同じ表データを同じように処理してみます.

どっちが速いんですかね? 気になりましたので調べてみました.

野球データの集計

2013年メジャーリーグ全試合打席結果データ(77MB, 約19万行)から, 塁打数ランキング.csvを作ってみます.

Rのdplyrを使って書いたスクリプトdplyr.Rは,

library(data.table)
library(dplyr)

## データ読み込み
dat = fread("all2013.csv")

## 集計 
dat %>% select(BAT_ID, H_FL) %>% 
 group_by(BAT_ID) %>% 
 summarise(BASE = sum(H_FL)) %>% 
 arrange(desc(BASE)) %>% 
 write.csv("hoge.csv")

こんな感じ.

> time R -f dplyr.R
R -f dplyr.R  3.13s user 0.15s system 99% cpu 3.294 total

pythonのpandasだと,


#!/usr/bin/python

import pandas as pd

df = pd.read_csv('all2013.csv')

df[["BAT_ID", "H_FL"]].groupby("BAT_ID").sum().sort("H_FL", ascending=False).to_csv('hoge.csv')

こんな感じ.

> time ./pd.py                                                                          
./pd.py  3.12s user 0.40s system 98% cpu 3.567 total

dplyrだと3.29秒, pandasだと3.56秒.

dplyrがちょっと勝っています.

まとめ

77MBのデータだと, どちらかが特別速いわけではなさそうです.

慣れている方を使えばOKなんでしょうかね?

以上です.

10
9
0

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
10
9