🐼 Pandas Cheat Sheet

📄 Documentação Oficial do Pandas

# Comando / Função O que faz Exemplo
1pd.read_csv()Carrega um arquivo CSV para um DataFramedf = pd.read_csv('dados.csv')
2pd.read_excel()Carrega uma folha de cálculo Exceldf = pd.read_excel('vendas.xlsx')
3pd.DataFrame()Cria um DataFrame a partir de um dicionário/listadf = pd.DataFrame({'A': [1, 2]})
4df.to_csv()Salva o DataFrame num arquivo CSVdf.to_csv('saida.csv', index=False)
5df.head()Exibe as primeiras 5 linhasdf.head(10)
6df.tail()Exibe as últimas 5 linhasdf.tail()
7df.info()Resumo do índice, colunas e tipos de dadosdf.info()
8df.describe()Estatísticas descritivas (média, desvio padrão, etc)df.describe()
9df.shapeRetorna o número de linhas e colunasdf.shape
10df.columnsLista os nomes de todas as colunasdf.columns
11df.dtypesMostra o tipo de cada colunadf.dtypes
12df['coluna']Seleciona uma coluna específicadf['nome']
13df[['c1', 'c2']]Seleciona múltiplas colunasdf[['idade', 'sexo']]
14df.iloc[]Seleção baseada em posição inteiradf.iloc[0:5, 0:2]
15df.loc[]Seleção baseada em rótulos/nomesdf.loc[df['idade'] > 18]
16df.query()Filtra linhas usando uma expressão stringdf.query('vendas > 1000')
17df.sample()Retorna uma amostra aleatória de linhasdf.sample(n=10)
18df.isnull()Verifica valores nulos (NaN)df.isnull().sum()
19df.dropna()Remove linhas que contêm valores nulosdf.dropna(axis=0)
20df.fillna()Substitui valores nulos por um valor específicodf.fillna(0)
21df.drop()Remove colunas ou linhas específicasdf.drop(columns=['id'])
22df.rename()Altera nomes de colunas ou índicesdf.rename(columns={'old': 'new'})
23df.drop_duplicates()Remove linhas duplicadasdf.drop_duplicates()
24df.astype()Converte o tipo de dado de uma colunadf['id'].astype(str)
25df.sort_values()Ordena o DataFrame por uma ou mais colunasdf.sort_values('data', ascending=False)
26df.apply()Aplica uma função a cada linha/colunadf['preco'].apply(np.log)
27df.map()Substitui valores usando um dicionáriodf['sexo'].map({'M': 0, 'F': 1})
28df.assign()Cria novas colunas baseadas em existentesdf.assign(total = df.q * df.p)
29pd.to_datetime()Converte strings para objetos de datapd.to_datetime(df['data'])
30df.groupby()Agrupa dados para aplicar funções agregadasdf.groupby('categoria').sum()
31df.agg()Aplica múltiplas funções de agregaçãodf.agg(['mean', 'std'])
32df.value_counts()Conta ocorrências de valores únicosdf['cor'].value_counts()
33df.unique()Retorna valores únicos de uma colunadf['cidade'].unique()
34df.nunique()Conta quantos valores únicos existemdf.nunique()
35pd.pivot_table()Cria uma tabela dinâmica (estilo Excel)df.pivot_table(index='A', values='B')
36pd.concat()Concatena DataFrames (empilha ou lado a lado)pd.concat([df1, df2])
37df.merge()Faz o "JOIN" entre dois DataFramesdf1.merge(df2, on='id', how='left')
38df.join()Une DataFrames baseando-se no índicedf1.join(df2)
39df.resample()Reamostra dados temporais (ex: mensal, anual)df.resample('M').mean()
40df.shift()Desloca os dados no tempo (útil para lags)df['anterior'] = df['vendas'].shift(1)
41df.rolling()Cria janelas móveis (média móvel)df['media_movel'] = df.val.rolling(7).mean()
42df.plot()Gera gráficos básicos usando Matplotlibdf.plot(kind='line')
43df.hist()Gera histogramas das colunas numéricasdf.hist(bins=20)
44df['col'].str.contains()Verifica se uma string contém um padrão/substringdf[df['nome'].str.contains('Silva')]
45df['col'].str.lower()Converte todo o texto para minúsculasdf['email'] = df['email'].str.lower()
46df['col'].str.upper()Converte todo o texto para maiúsculasdf['sigla'] = df['sigla'].str.upper()
47df['col'].str.split()Divide uma string em uma lista baseada em um separadordf['nome'].str.split(' ', expand=True)
48df['col'].str.replace()Substitui um padrão por outro (suporta Regex)df['tel'].str.replace('-', '')
49df['col'].str.strip()Remove espaços em branco no início e fimdf['nome'].str.strip()
50df['col'].str.len()Retorna o comprimento de cada string na colunadf['tamanho'] = df['comentario'].str.len()
51df['col'].str.startswith()Filtra strings que começam com um prefixodf[df['cod'].str.startswith('A')]
52df.isin()Filtra valores que estejam em uma listadf[df['id'].isin([1, 5, 10])]
53df.where()Substitui valores onde a condição é falsadf.where(df > 0, 0)
54df.mask()Substitui valores onde a condição é verdadeiradf.mask(df < 0, 0)
55df.filter()Filtra colunas ou linhas por nome/regexdf.filter(regex='venda_')
56df.select_dtypes()Seleciona colunas por tipo de dadodf.select_dtypes(include=['number'])
57df.at[]Acessa um valor único (mais rápido que .loc)df.at[0, 'nome']
58df.iat[]Acessa valor único por posição inteiradf.iat[0, 0]
59df.pct_change()Calcula a variação percentual entre linhasdf['variacao'] = df['preco'].pct_change()
60df.rank()Atribui ranks (posições) aos valoresdf['rank'] = df['vendas'].rank(ascending=False)
61df.cumprod()Calcula o produto acumuladodf['retorno_acum'] = df['retorno'].cumprod()
62df.cumsum()Calcula a soma acumuladadf['vendas_total'] = df['vendas'].cumsum()
63df.memory_usage()Mostra o consumo de memória de cada colunadf.memory_usage(deep=True)
64df.corr()Calcula a matriz de correlação entre colunasdf.corr()
65df.cov()Calcula a covariância entre as colunasdf.cov()
66df.melt()Transforma colunas em linhas (unpivot)pd.melt(df, id_vars=['id'])
67df.pivot()Remodela os dados (longo para largo)df.pivot(index='data', columns='item')
68df.stack()"Empilha" as colunas no índice (hierárquico)df.stack()
69df.unstack()Move o último nível do índice para colunasdf.unstack()
70df.explode()Transforma cada elemento de uma lista em uma linhadf.explode('tags')
71df.transpose()Inverte linhas e colunas (T)df.T
72df['data'].dt.yearExtrai o ano de uma coluna de datadf['ano'] = df['data'].dt.year
73df['data'].dt.monthExtrai o mês de uma coluna de datadf['mes'] = df['data'].dt.month
74df['data'].dt.day_name()Retorna o nome do dia da semanadf['dia_semana'] = df['data'].dt.day_name()
75df['data'].dt.days_in_monthRetorna quantos dias tem o mês daquela datadf['dias_mes'] = df['data'].dt.days_in_month
76df.tz_localize()Define o fuso horário (Timezone)df['data'].dt.tz_localize('UTC')
77df.set_index()Define uma coluna como índice do DataFramedf.set_index('id')
78df.reset_index()Transforma o índice em uma coluna comumdf.reset_index(drop=True)
79df.reindex()Reorganiza o DataFrame para um novo índicedf.reindex(novo_indice)
80df.sort_index()Ordena o DataFrame pelo índicedf.sort_index()
81pd.read_sql()Lê dados de um banco de dados SQLpd.read_sql('SELECT * FROM tab', conn)
82pd.read_json()Carrega um arquivo JSONdf = pd.read_json('dados.json')
83df.to_excel()Exporta o DataFrame para Exceldf.to_excel('relatorio.xlsx')
84df.to_json()Exporta o DataFrame para JSONdf.to_json('saida.json')
85pd.read_clipboard()Lê dados copiados na área de transferênciadf = pd.read_clipboard()
86pd.read_html()Extrai tabelas de uma página web/HTMLtabelas = pd.read_html('http://site.com')
87df.copy()Cria uma cópia profunda do DataFramedf_new = df.copy()
88df.nlargest()Retorna as N linhas com maiores valoresdf.nlargest(5, 'valor')
89df.nsmallest()Retorna as N linhas com menores valoresdf.nsmallest(3, 'preco')
90df.duplicated()Identifica linhas duplicadas (retorna booleano)df[df.duplicated()]
91pd.get_dummies()Converte variáveis categóricas em Dummy/One-Hotpd.get_dummies(df['categoria'])
92df.pipe()Aplica uma sequência de funções ao DFdf.pipe(func1).pipe(func2)
93pd.options.displayConfigura como o Pandas exibe os dadospd.options.display.max_columns = 50
94df.combine_first()Preenche valores nulos com dados de outro DataFramedf1.combine_first(df2)
95df.update()Modifica o DF original com valores de outro (pelo índice)df1.update(df2)
96df.squeeze()Converte um DataFrame de uma coluna em uma Seriesdf.squeeze()
97df.truncate()Corta o DataFrame antes e depois de algum índicedf.truncate(before=2, after=10)
98df.first()Seleciona períodos iniciais baseados em tempodf.first('3D') # Primeiros 3 dias
99df.last()Seleciona períodos finais baseados em tempodf.last('1M') # Último mês
100df.groupby().transform()Aplica função e retorna Series com o mesmo tamanho originaldf.groupby('A')['B'].transform('mean')
101df.groupby().filter()Filtra grupos baseados em uma condição booleanadf.groupby('A').filter(lambda x: x['B'].sum() > 100)
102df.groupby().nth()Pega a n-ésima linha de cada grupodf.groupby('cat').nth(0)
103df.mad()Retorna o desvio absoluto médiodf['val'].mad()
104df.skew()Retorna a assimetria (skewness) dos dadosdf.skew()
105df.kurtosis()Retorna a curtose (pico) da distribuiçãodf.kurtosis()
106df.sem()Erro padrão da médiadf.sem()
107df.diff()Diferença discreta entre elementos (atual menos anterior)df['vendas'].diff()
108df['col'].str.extract()Extrai grupos de Regex para novas colunasdf['txt'].str.extract(r'(\d+)')
109df['col'].str.count()Conta ocorrências de um padrão em cada stringdf['msg'].str.count('urgente')
110df['col'].str.pad()Adiciona preenchimento (espaços/caracteres) à stringdf['id'].str.pad(width=5, fillchar='0')
111df['col'].str.zfill()Preenche strings com zeros à esquerdadf['cod'].str.zfill(10)
112df['col'].str.find()Retorna a posição inicial de uma substring (-1 se não achar)df['email'].str.find('@')
113df['col'].str.repeat()Repete a string n vezesdf['separador'].str.repeat(3)
114df['data'].dt.quarterRetorna o trimestre (1 a 4) da datadf['trimestre'] = df['data'].dt.quarter
115df['data'].dt.is_leap_yearVerifica se o ano é bissextodf['bissexto'] = df['data'].dt.is_leap_year
116df['data'].dt.weekofyearRetorna a semana do anodf['semana'] = df['data'].dt.isocalendar().week
117pd.DateOffset()Adiciona/subtrai intervalos de tempo específicosdf['data'] + pd.DateOffset(days=5)
118pd.date_range()Cria uma sequência de datas fixed frequencypd.date_range(start='2023-01-01', periods=10)
119df['data'].dt.normalize()Zera as horas, mantendo apenas a datadf['so_data'] = df['data'].dt.normalize()
120df.isna()Alias para isnull() (mais comum em outras linguagens)df.isna().any()
121df.notna()Oposto de isna(); True para valores preenchidosdf[df['email'].notna()]
122df.replace()Substitui valores específicos globalmentedf.replace('?', np.nan)
123df.convert_dtypes()Converte colunas para os melhores tipos possíveis (inferência)df.convert_dtypes()
124df.infer_objects()Tenta inferir melhores tipos para colunas de 'object'df.infer_objects()
125df.to_dict()Converte o DataFrame em um dicionário Pythondados = df.to_dict(orient='records')
126df.to_html()Gera o código de uma tabela HTML a partir do DFhtml_str = df.to_html()
127df.to_markdown()Exporta a tabela no formato Markdownprint(df.to_markdown())
128df.to_parquet()Salva em formato Parquet (eficiente para Big Data)df.to_parquet('dados.parquet')
129pd.read_parquet()Lê um arquivo do tipo Parquetdf = pd.read_parquet('dados.parquet')
130df.to_pickle()Serializa o objeto para um arquivo binário (Pickle)df.to_pickle('backup.pkl')
131df.index.get_loc()Obtém a posição inteira de um rótulo do índicepos = df.index.get_loc('2023-05-01')
132df.reorder_levels()Muda a ordem dos níveis em um MultiIndexdf.reorder_levels([1, 0])
133df.swaplevel()Troca dois níveis do índicedf.swaplevel(0, 1)
134df.index.nameAtribui um nome ao índicedf.index.name = 'usuario_id'
135df.style.background_gradient()Cria um mapa de calor nas células (estilo Excel)df.style.background_gradient(cmap='viridis')
136df.style.highlight_max()Destaca o valor máximo de cada colunadf.style.highlight_max(color='lightgreen')
137df.style.format()Formata a exibição (casas decimais, %, etc)df.style.format('{:.2%}')
138df.boxplot()Cria um gráfico de caixa para detectar outliersdf.boxplot(column=['salario'])
139pd.show_versions()Mostra versões do Pandas e dependências (debug)pd.show_versions()
140df.eval()Executa operações matemáticas usando strings (rápido)df.eval('C = A + B')
141pd.cut()Transforma valores contínuos em categorias (bins)pd.cut(df['idade'], bins=[0, 18, 65, 100])
142pd.qcut()Divide dados em bins baseados em quantis (mesmo tamanho)pd.qcut(df['renda'], q=4)
143pd.testing.assert_frame_equal()Verifica se dois DFs são idênticos (útil para testes unitários)pd.testing.assert_frame_equal(df1, df2)