Manipulación de datos en Python frente a R: dplyr frente a pandas
Comparación de técnicas de manipulación de datos en R y Python
Este tutorial compara las técnicas de manipulación de datos utilizando las bibliotecas dplyr de R y pandas de Python. A través de ejemplos lado a lado, aprenda cómo filtrar, agrupar, resumir y unir datos para agilizar su flujo de trabajo de ciencia de datos.
La manipulación eficaz de los datos es esencial en cualquier flujo de trabajo de la ciencia de datos. Tanto R como Python proporcionan potentes bibliotecas para esta tarea: dplyr en R y pandas en Python. Aunque la sintaxis difiere entre los dos, las funcionalidades básicas, como filtrar, agrupar, resumir y unir datos, son muy similares. En este tutorial, ofrecemos ejemplos paralelos de operaciones comunes de manipulación de datos en dplyr y pandas, ayudándole a entender las similitudes y diferencias en su transición entre estos dos ecosistemas.
Filtrar Datos
El filtrado es una de las operaciones más fundamentales. A continuación se muestran ejemplos de filtrado de filas en las que la variable value es mayor que 5.
library(dplyr)# Crear un marco de datos de muestradata <-data.frame(id =1:10,value =c(5, 3, 6, 2, 8, 7, 4, 9, 1, 10))# Filtrar filas donde valor > 5filtered_data <- data %>%filter(value >5)print(filtered_data)
id value
1 3 6
2 5 8
3 6 7
4 8 9
5 10 10
import pandas as pd# Crear un DataFrame de muestradata = pd.DataFrame({'id': list(range(1, 11)),'value': [5, 3, 6, 2, 8, 7, 4, 9, 1, 10]})# Filtrar filas donde valor > 5filtered_data = data[data['value'] >5]print(filtered_data)
id value
2 3 6
4 5 8
5 6 7
7 8 9
9 10 10
Agrupación y resumen de datos
Agrupar datos y calcular estadísticos de resumen es crucial para comprender las distribuciones de los datos. A continuación, agrupamos por una variable categórica y calculamos la media de una variable numérica.
library(dplyr)# Crear datos de muestra con una variable de agrupacióndata <-data.frame(group =rep(c("A", "B"), each =5),value =c(5, 3, 6, 2, 8, 7, 4, 9, 1, 10))# Agrupar por 'grupo' y resumir el valor mediosummary_data <- data %>%group_by(group) %>%summarize(avg_value =mean(value))print(summary_data)
# A tibble: 2 × 2
group avg_value
<chr> <dbl>
1 A 4.8
2 B 6.2
import pandas as pd# Crear DataFrame de ejemplo con una columna de agrupacióndata = pd.DataFrame({'group': ['A']*5+ ['B']*5,'value': [5, 3, 6, 2, 8, 7, 4, 9, 1, 10]})# Agrupar por <grupo> y calcular la media de <valor>summary_data = data.groupby('group')['value'].mean().reset_index()print(summary_data)
group value
0 A 4.8
1 B 6.2
Unir datos
Unir (fusionar) conjuntos de datos es una tarea común cuando se combinan datos de múltiples fuentes. A continuación se muestra un ejemplo de unión a la izquierda.
library(dplyr)# Creación de dos marcos de datos de ejemplodf1 <-data.frame(id =1:5,value1 =c("A", "B", "C", "D", "E"))df2 <-data.frame(id =c(3, 4, 5, 6),value2 =c("X", "Y", "Z", "W"))# Left join df1 with df2 on dplyrjoined_data <-left_join(df1, df2, by ="id")print(joined_data)
id value1 value2
1 1 A <NA>
2 2 B <NA>
3 3 C X
4 4 D Y
5 5 E Z
import pandas as pd# Crear dos marcos de datos de muestradf1 = pd.DataFrame({'id': [1, 2, 3, 4, 5],'value1': ["A", "B", "C", "D", "E"]})df2 = pd.DataFrame({'id': [3, 4, 5, 6],'value2': ["X", "Y", "Z", "W"]})# Realice una fusión a la izquierda en 'idjoined_data = pd.merge(df1, df2, on="id", how="left")print(joined_data)
id value1 value2
0 1 A NaN
1 2 B NaN
2 3 C X
3 4 D Y
4 5 E Z
Conclusión
Este tutorial ha proporcionado ejemplos lado a lado comparando técnicas de manipulación de datos en R usando dplyr y en Python usando pandas. Ya sea que esté filtrando filas, agrupando datos para estadísticas de resumen o uniendo conjuntos de datos, ambos ecosistemas ofrecen herramientas poderosas y similares para realizar sus tareas de manipulación de datos. Comprender estos paralelismos puede facilitar enormemente la transición entre R y Python y ayudarle a elegir la herramienta adecuada para sus proyectos de ciencia de datos.
@online{kassambara2024,
author = {Kassambara, Alboukadel},
title = {Manipulación de datos en Python frente a R: dplyr frente a
pandas},
date = {2024-02-13},
url = {https://www.datanovia.com/es/learn/programming/transition/data-manipulation-dplyr-vs-pandas.html},
langid = {es}
}