Traitons les mêmes données de table de la même manière avec dplyr en R et pandas en python.
J'étais curieux, alors j'ai cherché.
Faisons un classement des succès de base .csv à partir des données des résultats des matchs de la ligue majeure de 2013 (77 Mo, environ 190 000 lignes).
Le script dplyr.R écrit en utilisant le dplyr de R est
library(data.table)
library(dplyr)
##Lecture des données
dat = fread("all2013.csv")
##Agrégat
dat %>% select(BAT_ID, H_FL) %>%
group_by(BAT_ID) %>%
summarise(BASE = sum(H_FL)) %>%
arrange(desc(BASE)) %>%
write.csv("hoge.csv")
Comme ça.
> time R -f dplyr.R
R -f dplyr.R 3.13s user 0.15s system 99% cpu 3.294 total
Avec les pandas python,
#!/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')
Comme ça.
> time ./pd.py
./pd.py 3.12s user 0.40s system 98% cpu 3.567 total
3,29 secondes pour dplyr, 3,56 secondes pour les pandas.
dplyr est un peu mieux.
Avec 77 Mo de données, aucun des deux ne semble particulièrement rapide.
Est-ce que ça va si vous utilisez quelqu'un qui y est habitué?
c'est tout.
Recommended Posts