Manipulação de dados em Python vs. R: dplyr vs. pandas
Comparando técnicas de manipulação de dados em R e Python
Este tutorial compara técnicas de manipulação de dados usando as bibliotecas dplyr do R e pandas do Python. Por meio de exemplos lado a lado, aprenda a filtrar, agrupar, resumir e unir dados para otimizar seu fluxo de trabalho de ciência de dados.
A manipulação eficaz de dados é essencial em qualquer fluxo de trabalho de ciência de dados. Tanto o R quanto o Python fornecem bibliotecas poderosas para essa tarefa: dplyr no R e pandas no Python. Embora a sintaxe seja diferente entre os dois, as funcionalidades principais, como filtrar, agrupar, resumir e unir dados, são notavelmente semelhantes. Neste tutorial, oferecemos exemplos lado a lado de operações comuns de manipulação de dados em dplyr e pandas, ajudando você a entender as semelhanças e diferenças ao fazer a transição entre esses dois ecossistemas.
Filtragem de dados
A filtragem é uma das operações mais fundamentais. Abaixo estão exemplos de filtragem de linhas onde a variável value é maior que 5.
library(dplyr)# Crie um data frame de amostradata <-data.frame(id =1:10,value =c(5, 3, 6, 2, 8, 7, 4, 9, 1, 10))# Filtre linhas onde o 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# Crie um DataFrame de amostradata = pd.DataFrame({'id': list(range(1, 11)),'value': [5, 3, 6, 2, 8, 7, 4, 9, 1, 10]})# Filtre linhas onde o 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
Agrupar e resumir dados
Agrupar dados e calcular estatísticas resumidas é crucial para entender as distribuições de dados. Abaixo, agrupamos por uma variável categórica e calculamos a média de uma variável numérica.
library(dplyr)# Crie dados de amostra com uma variável de agrupamentodata <-data.frame(group =rep(c("A", "B"), each =5),value =c(5, 3, 6, 2, 8, 7, 4, 9, 1, 10))# Agrupe por 'grupo' e resuma o valor médiosummary_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# Crie um DataFrame de amostra com uma coluna de agrupamentodata = pd.DataFrame({'group': ['A']*5+ ['B']*5,'value': [5, 3, 6, 2, 8, 7, 4, 9, 1, 10]})# Agrupe por 'grupo' e calcule a média de 'valor'summary_data = data.groupby('group')['value'].mean().reset_index()print(summary_data)
group value
0 A 4.8
1 B 6.2
Unindo dados
Juntar (mesclar) conjuntos de dados é uma tarefa comum ao combinar dados de várias fontes. Abaixo está um exemplo de como realizar uma junção à esquerda.
library(dplyr)# Criar duas estruturas de dados de amostradf1 <-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"))# Juntar df1 com df2 à esquerda em 'id'joined_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# Crie dois DataFrames de amostradf1 = 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"]})# Execute uma mesclagem à esquerda em 'id'joined_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
Conclusão
Este tutorial forneceu exemplos lado a lado comparando técnicas de manipulação de dados em R usando dplyr e em Python usando pandas. Seja para filtrar linhas, agrupar dados para estatísticas resumidas ou unir conjuntos de dados, ambos os ecossistemas oferecem ferramentas poderosas e semelhantes para realizar suas tarefas de manipulação de dados. Compreender esses paralelos pode facilitar muito a transição entre o R e o Python e ajudá-lo a escolher a ferramenta certa para seus projetos de ciência de dados.
@online{kassambara2024,
author = {Kassambara, Alboukadel},
title = {Manipulação de dados em Python vs. R: dplyr vs. pandas},
date = {2024-02-13},
url = {https://www.datanovia.com/pt/learn/programming/transition/data-manipulation-dplyr-vs-pandas.html},
langid = {pt}
}