J'ai essayé de comparer la vitesse de traitement avec dplyr de R et pandas de Python

introduction

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é.

Agrégation des données de baseball

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.

Résumé

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

J'ai essayé de comparer la vitesse de traitement avec dplyr de R et pandas de Python
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé d'automatiser la mise à jour de l'article du blog Livedoor avec Python et sélénium.
J'ai comparé la vitesse de Hash avec Topaz, Ruby et Python
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
Comparez la vitesse d'ajout et de carte Python
J'ai remplacé le calcul numérique de Python par Rust et comparé la vitesse
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé de vérifier et d'analyser l'accélération de Python par Cython
J'ai essayé d'analyser la négativité de Nono Morikubo. [Comparer avec Posipa]
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de visualiser facilement les tweets de JAWS DAYS 2017 avec Python + ELK
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
J'ai essayé d'obtenir et d'analyser les données statistiques de la nouvelle Corona avec Python: données de l'Université John's Hopkins
J'ai essayé de comparer la précision de la classification des phrases BERT japonaises et japonaises Distil BERT avec PyTorch et introduction de la technique d'amélioration de la précision BERT
J'ai essayé la "correction gamma" de l'image avec Python + OpenCV
J'ai essayé de simuler la propagation de l'infection avec Python
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
Je veux connaître la nature de Python et pip
J'ai essayé d'énumérer les différences entre java et python
Traitement d'image avec Python (j'ai essayé de le binariser en art mosaïque 0 et 1)
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
Le 15e temps réel hors ligne, j'ai essayé de résoudre le problème de l'écriture avec python
J'ai essayé de publier automatiquement sur ChatWork au moment du déploiement avec Fabric et ChatWork Api
J'ai essayé de résoudre le problème de F02 comment écrire en temps réel hors ligne avec Python
J'ai aussi essayé d'imiter la fonction monade et la monade d'état avec le générateur en Python
J'ai écrit un doctest dans "J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python"
J'ai essayé de gratter le classement du calendrier de l'avent Qiita avec Python
J'ai essayé de résoudre l'édition du débutant du livre des fourmis avec python
Comparaison de vitesse du traitement de texte intégral de Wiktionary avec F # et Python
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
[Introduction à Python] J'ai comparé les conventions de nommage de C # et Python.
Je veux sortir le début du mois prochain avec Python
J'ai essayé de créer une liste de nombres premiers avec python
Considérez la vitesse de traitement pour déplacer le tampon d'image avec numpy.ndarray
[Pandas] J'ai essayé d'analyser les données de ventes avec Python [Pour les débutants]
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
J'ai essayé d'agrandir la taille du volume logique avec LVM
J'ai essayé de détecter facilement les points de repère du visage avec python et dlib
J'ai essayé de collecter automatiquement des images de Kanna Hashimoto avec Python! !!
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
J'ai essayé de vérifier l'identification du locuteur par l'API de reconnaissance du locuteur d'Azure Cognitive Services avec Python. # 1
J'ai essayé de créer un traitement par lots sans serveur pour la première fois avec DynamoDB et Step Functions
J'ai essayé de vérifier l'identification du locuteur par l'API de reconnaissance du locuteur d'Azure Cognitive Services avec Python. # 2
J'ai essayé d'obtenir les résultats de Hachinai en utilisant le traitement d'image
J'ai essayé de visualiser la tranche d'âge et la distribution des taux d'Atcoder
J'ai essayé d'exprimer de la tristesse et de la joie face au problème du mariage stable.
(Python) J'ai essayé d'analyser 1 million de mains ~ J'ai essayé d'estimer le nombre d'AA ~
J'ai essayé d'apprendre l'angle du péché et du cos avec le chainer
J'ai 0 ans d'expérience en programmation et je défie le traitement des données avec python
J'ai essayé avec les 100 meilleurs packages PyPI> J'ai essayé de représenter graphiquement les packages installés sur Python
J'ai essayé de visualiser le texte du roman "Weather Child" avec Word Cloud
Python: je souhaite mesurer proprement le temps de traitement d'une fonction