Você está na página 1de 7

Dataframes: Resumo

Atributos e métodos do pandas.dataFrame


https://github.com/vitordiegoramos/analisededados
https://github.com/vitordiegoramos/analisededados/blob/main/
01_Dicas_de_Manipulacao_de_Dados_com_Pandas_Vitor_Diego_Ramos.ipynb

Nas tabelas usamos df para referenciar um dataframe do pandas. Quando necessária a


interação com um segundo dataframe ele é designado por dfOutro. A abreviação e/e
significa “elemento a elemento”, utilizada quando a operação é aplicada entre todos
os elementos de um e outro dataframe, usando elementos na posição (linha, coluna).

Atributos dos dataframes


Atributo descrição
df.at(m,n) valor correspondente à linha=m, coluna=n
df.axes lista representando os eixos do df
df.columns rótulos das colunas do df
df.dtypes dtypes no df
df.flags propriedades associadas ao df
df.iat valor para um par linha/coluna
df.iloc indexação baseada em localização puramente inteira para seleção por
posição
df.loc grupo de linhas e colunas por rótulo(s) ou matriz booleana
df.ndim número (int) de eixos/dimensões da matriz
df.shape tupla com a dimensionalidade do df
df.size número (int) de elementos no objeto
df.style um objeto Styler
df.values representação Numpy do df
Métodos dos dataframes
Exibição e consulta ao dataframe
df.at(m,n) valor correspondente à linha=m, coluna=n
df.attrs dict de atributos globais do objeto (experimental)
df.head([n]) as primeiras n linhas
df.info([verbose, buf, max_cols, memory_usage,…]) resumo conciso do dataframe
df.tail([n]) últimas n linhas
df.items() iteração sobre (nome da coluna, Series)
df.iteritems() iteração sobre (nome da coluna, Series)
df.iterrows() iteração sobre linhas de df como pares (index, Series)
df.itertuples([index, nome]) iteração sobre linhas do df como pares nomeados
df.memory_usage([index, deep]) uso de memória de cada coluna em bytes
df.nlargest(n, columns[, keep]) n primeiras linhas ordenadas por colunas em
ordem decrescente
df.nsmallest(n, colunas[, manter]) n primeiras n linhas ordenadas por colunas em
ordem crescente
df.nunique([axis, dropna]) número de elementos distintos no eixo especificado
Operações matemáticas
Método descrição
df.abs() valor absoluto de cada elemento
df.add(dfOutro[, axis, level, fill_value]) adição de df e dfOutro
df.apply(func[, axis, raw, result_type, args]) aplica função ao longo de um eixo
do df
df.applymap(func[, na_action]) aplica uma função a um df e/e
df.div(dfOutro[, axis, level, fill_value]) divisão flutuante de df por dfOutro
df.divide(dfOutro[, axis, level, fill_value]) divisão flutuante de df por dfOutro
df.dot(dfOutro) multiplicação de df por dfOutro
df.eval(expr[, inplace]) avalia a string ‘expr’ contendo operações sobre
colunas do df
df.ewm([com, span, halflife, alpha,…]) função exponencial ponderada (EW)
df.floordiv(dfOutro[, axis, level, fill_value]) divisão inteira do df por dfOutro
df.mod(dfOutro[, axis, level, fill_value]) módulo de df por dfOutro e/e
df.mul(dfOutro[, axis, level, fill_value]) multiplicação de df por dfOutro,
e/e
df.multiply(dfOutro[, axis, level, fill_value]) multiplicação de df por dfOutro,
e/e
df.pow(dfOutro[, axis, level, fill_value]) exponencial do df por dfOutro e/e
df.prod([axis, skipna, level, numeric_only, ...]) produto dos valores sobre o
eixo especificado
df.product([axis, skipna, level, numeric_only, ...]) produto dos valores sobre o
eixo especificado
df.radd(dfOutro[, axis, level, fill_value]) adição de df e dfOutro e/e, com
suporte a fill_na
df.rdiv(dfOutro[, axis, level, fill_value]) divisão float de df por dfOutro e/e
df.rfloordiv(dfOutro[, axis, level, fill_value]) divisão inteira do df e
dfOutro e/e
df.rmod(dfOutro[, axis, level, fill_value]) módulo de df e dfOutro e/e
df.rmul(dfOutro[, axis, level, fill_value]) multiplicação de df por dfOutro e/e
df.round([decimals]) arredonda elementos de df para um número dado de casas
decimais
df.rpow(dfOutro[, axis, level, fill_value]) exponencial do df por dfOutro e/e
df.rsub(dfOutro[, axis, level, fill_value]) subtração de df e dfOutro e/e
df.rtruediv(dfOutro[, axis, level, fill_value]) divisão float de df por dfOutro e/e
df.sub(dfOutro[, axis, level, fill_value]) subtração de df por dfOutro e/e
df.sum([axis, skipna, level, numeric_only, ...]) soma dos valores sobre o eixo
especificado
df.transform(func[, axis]) executa func em elementos de df, sobre eixo
especificado
df.truediv(dfOutro[, axis, level, fill_value]) divisão float de df por dfOutro e/e
Formatação, Transposição, Ordenação
Método descrição
Transposição Tij = Mji
df.T a transposta de df
df.transpose(* args[, copiar]) transpor índices e colunas (obter a transposta)
df.droplevel(nível[, axis]) remove colunas com index ou níveis solicitados
df.melt([id_vars, value_vars, var_name,…]) Unpivot dataFrame para um formato
largo
df.pivot([index, columns, values]) refaz df organizado por valores de index/column
fornecidos
df.pivot_table([values, index, columns,…]) cria tabela dinâmica no estilo
planilha como um df
df.sort_index([axis, level, ascendente, ...]) classifica objeto por rótulos (ao
longo de um eixo)
df.sort_values (by[, axis, ascending, inplace, ...]) ordena por valores ao longo
do eixo especificado
df.stack([level, dropna]) empilha os níveis prescritos das colunas para o
índice
df.swapaxes(axis1, axis2[, copy]) inverte eixos com seus valores respectivos
df.swaplevel([i, j, axis]) inverte níveis i e j em umMultiIndex
df.unstack([level, fill_value]) pivot um level dos rótulos de índice
(necessariamente hierárquicos)
df.explode(column[, ignore_index]) transforma cada elemento de uma lista em uma
linha, mantendo os índices
df.squeeze([axis]) comprime valores de eixo unidimensional para escalares
Métodos estatísticos
Método descrição
df.corr([method, min_periods]) calcula correlação de pares de colunas,
excluindo valores NA/nulos
df.corrwith(dfOutro[, axis, drop, method]) calcula correlação de pares
df.count([axis, level, numeric_only]) quantos valores não NA para cada coluna
ou linha
df.cov([min_periods, ddof]) calcula covariância de pares de colunas, excluindo
NA/nulos
df.cummax([axis, skipna]) máximo cumulativo em um df
df.cummin([axis, skipna]) mínimo cumulativo sobre um eixo do df
df.cumprod([axis, skipna]) produto cumulativo sobre um eixo do df
df.cumsum([axis, skipna]) soma cumulativa sobre eixo do df
df.describe([percentis, include, exclude, ...]) gera descrição estatística
df.diff([points, axis]) primeira diferença discreta do elemento
df.hist([column, by, grid, xlabelsize, xrot,…]) histograma das colunas do df
df.info([verbose, buf, max_cols, memory_usage,…]) resumo conciso do dataframe
df.kurt([axis, skipna, level, numeric_only]) curtose imparcial sobre o eixo
especificado
df.kurtosis([axis, skipna, level, numeric_only]) curtose imparcial sobre o
eixo especificado
df.mad([axis, skipna, level]) desvio absoluto médio sobre especificado
df.max([axis, skipna, level, numeric_only]) máximo dos valores sobre o eixo
especificado
df.mean([axis, skipna, level, numeric_only]) média dos valores sobre o eixo
especificado
df.median([axis, skipna, level, numeric_only]) mediana dos valores sobre o eixo
especificado
df.min([axis, skipna, level, numeric_only]) mínimo dos valores sobre o eixo
especificado
df.mode([axis, numeric_only, dropna]) moda(s) dos elemento ao longo do eixo
selecionado
df.pct_change([periods, method, limit, frequency]) alteração percentual entre o
elemento atual e o anterior
df.quantil([q, axis, numeric_only, interpolateion]) valores no quantil dado sobre
o eixo especificado
df.sample([n, frac, replace, weight,…]) amostra aleatória de itens de um eixo
df.sem([axis, skipna, level, ddof, numeric_only]) erro padrão imparcial da
média sobre o eixo especificado
df.std([axis, skipna, level, ddof, numeric_only]) desvio padrão da amostra
sobre o eixo especificado
df.var([axis, skipna, level, ddof, numeric_only]) variação imparcial sobre o
eixo especificado
Gerenciamento, filtragem e consulta ao dataframe
Método descrição
df.add_prefix(prefixo) acrecenta prefixo nos rótulos (labels)
df.add_suffix(sufixo) acrecenta sufixo nos rótulos (labels)
df.agg([function, axis]) agregar usando function no eixo especificado
df.aggregate([função, axis]) agregar usando function no eixo especificado
df.align(dfOutro[, junção, axis, nível, cópia, ...]) alinha dois objetos em seus
eixos com o método especificado
df.append(dfOutro[, ignore_index,…]) anexa linhas de dfOutro ao final de df
df.asof(where[, subset]) última(s) linha(s) sem NaN antes de where
df.assign(** kwargs) atribui novas colunas a um df
df.clip([lower, upper, axis, inplace]) corta (trim) os valores no(s) limite(s)
dados
df.combine(dfOutro, func[, fill_value, ...]) combina colunas com dfOutro
df.combine_first(dfOutro) atualiza elementos nulos com elementos de dfOutro, na
mesma posição
df.compare(dfOutro[, align_axis, keep_shape,…]) compara com dfOutro> e exibe
diferenças
df.copy([deep]) faz cópia do objeto com índices e dados
df.drop([labels, axis, index, columns, level, ...]) remove linhas ou colunas com
os rótulos especificados
df.drop_duplicates([subset, keep, inplace, ...]) remove linhas duplicadas
df.expanding([min_periods, center, axis, method]) aplica transformações de
expansão
df.filter([itens, like, regex, axis]) filtra linhas ou colunas do df de acordo
com os índices especificados
df.first_valid_index() índice do primeiro valor não NA; None se nenhum for
encontrado
df.get(key[, default]) item do dataframe correspondente à chave fornecida
df.groupby([by, axis, level, as_index, ...]) agrupa df usando um mapper ou
Series de colunas
df.infer_objects() tentativa de inferir dtypes para colunas do objeto
df.insert(loc, column, value[, allow_duplicates]) insere coluna no df no local
especificado
df.join(dfOutro[, on, how, lsuffix, rsuffix, sort]) junta colunas de df e dfOutro
df.lookup(row_labels, col_labels) (descontinuado) “indexação extravagante”
baseada em rótulos para df
df.mask(cond[, dfOutro, local, axis, level, ...]) substitui valores onde a
condição é True
df.merge(right[, how, on, left_on, …]) mesclar df usando database de estilo
df.pipe(func, * args, ** kwargs) aplicação de func(self, * args, ** kwargs)
df.pop(item) remove e retorna o item removido
df.query(expr[, inplace]) consulta colunas de df com uma expressão booleana
df.rank([axis, method, numeric_only, ...]) classificações de dados numéricos
(1 a n) ao longo do eixo
df.replace([to_replace, value, inplace, limit,…]) substitui valores em
to_replace com value
df.rolling(window[, min_periods, center,…]) cálculos de “rolling window”
df.select_dtypes([include, exclude]) subset de colunas do df com base nos
dtypes da coluna
df.skew([axis, skipna, level, numeric_only]) inclinação imparcial sobre o eixo
especificado
df.slice_shift([perids, axis]) (descontinuado) Equivalente a shift sem copiar
dados
df.sparse alias de pandas.core.arrays.sparse.accessor.SparseFrameAccessor
df.take(indices[, axis, is_copy]) elementos nos índices posicionais fornecidos ao
longo de um eixo
df.truncate([before, after, axis, copy]) truncar df antes e depois de valores de
índices
df.update(dfOutro[, juntar, substituir,…]) modifique “no local” usando valores
não NA de dfOutro
df.value_counts([subset, normalize, …]) retorna série contendo número de linhas
exclusivas no df
df.where(cond[, dfOutro, inplace, axis, level, ...]) substitui valores em que a
condição é falsa
df.xs(key[, axis, level, drop_level]) seção transversal de df
Testes e comparações
Método descrição
df.empty booleano: se o df está vazio
df.all([axis, bool_only, skipna, nível]) booleano: se todos os elementos são
verdadeiros, sobre um eixo (se especificado)
df.any([axis, bool_only, skipna, nível]) booleano: se algum elemento é verdadeiro,
sobre um eixo (se especificado)
df.bool() booleano, se um único elemento do df é True/False
df.duplicated([subset, keep]) série booleana marcando linhas duplicadas
df.eq(dfOutro[, axis, level]) boolena: se elementos são iguais a um escalar ou
dfOutro, e/e
df.equal(dfOutro) booleano: se dois objetos contêm os mesmos elementos
df.ge(dfOutro[, axis, level]) dataframe booleano, maior ou igual entre df e
dfOutro, e/e
df.gt(dfOutro[, axis, level]) dataframe booleano, maior que, entre df e dfOutro,
e/e
df.isin(values) booleano: se cada elemento no df está contido em values
df.le(dfOutro[, axis, level]) booleano: menor ou igual entre elementos de df e
dfOutro, e/e
df.lt(dfOutro[, axis, level]) booleano: menor dos elementos de df e dfOutro, e/e
df.ne(dfOutro[, axis, level]) booleano, diferente entre df e dfOutro, e/e
Operações com rótulos (labels) e índices
df.index índices do df
df.keys() retorna o index
df.last_valid_index() índice do último valor não NA; None se nenhum valor NA for
encontrado
df.reindex([labels, index, columns, axis, ...]) substitue índices de df, com lógica
de preenchimento opcional
df.reindex_like(dfOutro[, method, copy, limit, ...]) retorna objeto com índices
correspondentes à dfOutro
df.rename([mapper, index, columns, axis, copy, ...]) renomear rótulos dos eixos
df.rename_axis([mapper, index, columns, axis, ...]) define o nome do eixo para o
índices ou colunas
df.reorder_levels(order[, axis]) reorganiza níveis de índices usando a ordem em
order
df.reset_index([level, drop, inplace, ...]) redefine um índice ou seu nível
df.set_axis(rótulos[, axis, local]) atribui o índice desejado a determinado eixo
df.set_flags(*[, copy, allow_duplicated_labels]) novo objeto com sinalizadores
(flags) atualizados
df.set_index(keys[, drop, append, inplace, ...]) define índices de df usando
colunas existentes
df.idxmax([axis, skipna]) índice da primeira ocorrência do máximo sobre o eixo
especificado
df.idxmin([axis, skipna]) índice da primeira ocorrência do mínimo sobre o eixo
especificado

Plots
Método descrição
df.boxplot([column, by, ax, font-size, rot, ...]) traça gráfico de caixa usando
as colunas do df
df.plot o mesmo que pandas.plotting._core.PlotAccessor
df.hist([column, by, grid, xlabelsize, xrot,…]) histograma das colunas do df
Serialização e conversões
Método descrição
df.astype(dtype[, copy, errors]) transforma objeto para um dtype especificado
df.convert_dtypes([infer_objects,…]) converte colunas para os melhores dtypes
usando dtypes com suporte parapd.NA
df.from_dict(data[, orient, dtype, columns]) constroi df a partir de dict ou
similar
df.from_records(data[, index, exclusion,…]) converte ndarray ou dados
estruturados em dataframe
df.to_clipboard([excel, sep]) copia objeto para a área de transferência do sistema
df.to_csv([path_or_buf, sep, na_rep,…]) grava objeto em um arquivo de valores
separados por vírgula (csv)
df.to_dict([orient, into]) converte df em um dicionário
df.to_excel(excel_writer[, sheet_name, na_rep,…]) grava objeto em uma planilha
Excel
df.to_feather(path, **kwargs) grava df no formato binário Feather
df.to_gbq(destination_table[, project_id,…]) grava df em uma tabela Google
BigQuery
df.to_hdf(path_or_buf, key[, mode, complevel,…]) grava objeto em um arquivo
HDF5 usando HDFStore
df.to_html([buf, columns, col_space, header,…]) renderiza df como uma tabela HTML
df.to_json([path_or_buf, orient, date_format,…]) converte objeto em uma string
JSON
df.to_latex([buf, colunas, col_space, cabeçalho,…]) renderiza objeto em uma
tabela LaTeX
df.to_markdown([buf, mode, index, ...]) imprima df em formato Markdown
df.to_numpy([dtype, copy, na_value]) converte df em uma matriz NumPy
df.to_parquet([path, engine, ...]) grave df em formato binário parquet
df.to_period([freq, axis, copy]) converte df de DatetimeIndex para PeriodIndex
df.to_pickle(path[, compression, protocol, ...]) serializa o objeto para o
arquivo pickle
df.to_records([index, column_dtypes, index_dtypes]) converte df em uma matriz de
registro NumPy
df.to_sql(name, con[, schema, if_exists,…]) grava registros em df em um banco
de dados SQL
df.to_stata(path[, convert_dates, write_index,…]) exporta df para o formato
Stata dta
df.to_string([buf, columns, col_space, header, ...]) renderiza df em uma saída
tabular compatível com o console
df.to_timestamp([freq, how, axis, copy]) converte para DatetimeIndex de
timestamps, no início do período
df.to_xarray() converte para objeto xarray
df.to_xml([path_or_buffer, index, root_name,…]) renderiza df em um documento XML

Gerenciamento de valores ausentes


Método descrição
df.backfill([axis, inplace, limit, reduction]) o mesmo que df.fillna() com method
= 'bfill'
df.bfill([axis, inplace, limit, downcast]) o mesmo que df.fillna() com method
= 'bfill'
df.dropna([axis, how, treshold, subset, inplece]) remove os valores ausentes
df.ffill([axis, inplace, limit, reduction]) o mesmo que df.fillna() com method
= 'ffill'
df.fillna([value, method, axis, local, ...]) preenche campos com NA/NaN usando o
método especificado
df.interpolate([method, axis, limit, inplace, ...]) substitui valores NaN usando
método de interpolação
df.isna() detecta valores ausentes
df.isnull() detecta valores ausentes
df.notna() valores existentes (não ausentes)
df.notnull() valores existentes (não ausentes)
df.pad([axis, inplace, limit, downcast]) o mesmo que df.fillna() com method =
'ffill'
Séries temporais e dados com hora/data
Método descrição
df.asfreq(freq[, método, como, normalizar, ...]) converte série temporal para
a frequência especificada
df.at_time(hour[, asof, axis]) seleciona valores em um determinado horário do
dia
df.between_time(start_time, end_time[,…]) seleciona valores entre horários
especificados
df.first(offset) seleciona períodos iniciais em série temporal usando deslocamento
(offset)
df.last(offset) selecione períodos finais da série temporal com deslocamento
(offset)
df.resample(rule[, axis, closed, label, ...]) reamostrar os dados de série
temporal
df.shift([periods, freq, axis, fill_value]) desloca índices por número desejado
de períodos com uma frequância opcional
df.tshift([períodos, freq, axis]) (descontinuado) altera índice de tempo, usando
a frequência do índice, se dispolevel
df.tz_convert(tz[, axis, level, copy]) converte o eixo com reconhecimento de tz
em fuso horário de destino
df.tz_localize(tz[, axis, level, copy, ...]) localiza índice tz-naive de df para
o fuso horário de destino
Ordenamento com dataframes.sort_values
Para ordenar um dataframe podemos usar o método sort, com a seguinte sintaxe:

dataframe.sort_values(by=['campo'], axis=0, ascending=True, inplace=False)


onde
by pode ser uma string ou lista com o nome ou nomes dos campos, na prioridade de
ordenamento,
axis{0 ou ‘index’, 1 ou ‘columns’} default 0, indica o eixo a ordenar,
ascending=True/False se ordenamento é crescente/decrescente.
dataframe.reindex
Alterações da ordem dos índices de um dataframe podem ser obtidos com:
dataframe.reindex(listaDeCampos)
Os seguintes argumentos são usados com reindex

Argumento descrição
index Index ou sequência a ser usada como index,
method forma de interpolação: ‘ffill’ preenche com valor posterior, ‘bfill’
com valor anterior,
fill_value valor a usar quando dados não existentes são introduzidos por
reindexing (ao invés de NaN),
limit quando preenchendo com valor anterior ou posterior, intervalo máximo a
preencher (em número de elementos),
tolerance quando preenchendo com valor anterior ou posterior, intervalo máximo a
preencher para valores inexatos (em distância numérica),
level combina Index simples no caso de MultiIndex; caso contrário seleciona subset,
copy se True, copia dados mesmo que novo índice seja equivalente ao índice antigo;
se False, não copia dados quando índices são equivalentes.
Métodos e propriedades de Index
Método descrição
append concatena outro objeto Index objects, gerando novo Index
difference calcula a diferença de conjunto como um Index
intersection calcula intersecção de conjunto
union calcula união de conjunto
isin retorna array booleano indicando se cada valor está na coleção passada
delete apaga índice, recalculando Index
drop apaga índices passados, recalculando Index
insert insere índice, recalculando Index
is_monotonic retorna True se indices crescem de modo monotônico
is_unique returns True se não existem valores duplicados no Index
unique retorna índices sem repetições
Bibliografia
Pandas Pydata.org pandas docs, acessado em julho de 2021.

Manipulação de Dados com Pandas

Você também pode gostar