<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivo para Pandas - Bóson Treinamentos em Ciência e Tecnologia</title>
	<atom:link href="https://www.bosontreinamentos.com.br/tag/pandas/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bosontreinamentos.com.br/tag/pandas/</link>
	<description>Artigos e Tutoriais sobre Desenvolvimento de Software, Bancos de Dados SQL, Linux, Lógica de Programação, Inteligência Artificial, Hardware, Eletrônica, Arduino, Técnicas e Teorias de Estudo e Aprendizagem, Carreira em TI, Ciências Cognitivas, e muito mais!</description>
	<lastBuildDate>Thu, 28 Mar 2024 12:53:29 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>Como usar o objeto DataFrame da biblioteca Pandas em Python</title>
		<link>https://www.bosontreinamentos.com.br/programacao-em-python/como-usar-o-objeto-dataframe-da-biblioteca-pandas-em-python/</link>
					<comments>https://www.bosontreinamentos.com.br/programacao-em-python/como-usar-o-objeto-dataframe-da-biblioteca-pandas-em-python/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Mon, 26 Feb 2024 10:53:41 +0000</pubDate>
				<category><![CDATA[Programação em Python]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Ciência de Dados]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Pandas]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=19630</guid>

					<description><![CDATA[<p>Como usar o objeto DataFrame da biblioteca Pandas em Python Anteriormente falamos sobre o objeto Series do Pandas, e neste artigo vamos explorar algumas funções de um outro tipo de objeto muito comum também fornecido pelo módulo Pandas, o DataFrame. Os DataFrames do Pandas são uma estrutura de dados bastante versátil e poderosa que pode ser usada em análise, manipulação e processamento de dados em Python. Eles são empregados em uma ampla gama de aplicações de várias áreas, incluindo análise de dados, ciência de dados, engenharia, finanças, pesquisa e muito mais. Algumas das principais aplicações dos DataFrames do Pandas incluem: Pré-processamento de Dados: Limpeza, formatação, dados duplicados, valores ausentes, transformação nos dados Análise e Exploração de Dados: Importação de dados, Cálculos de Estatística Descritiva (média, mediana, desvio-padrão, etc.). Manipulação de Dados: Filtro, seleção e ordenação para extrair informações específicas dos dados; funções de agregação, colunas calculadas Análise de Séries Temporais: Manipulação e análise de dados temporais, como séries temporais de preços de ações, dados climáticos, etc.; reamostragem Modelagem Estatística e Machine Learning: Criação de conjuntos de treinamento e teste em aprendizado de máquina, divisão de dados para validação cruzada, etc. entre muitas outras. Além disso, os DataFrames podem ser integrados [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-python/como-usar-o-objeto-dataframe-da-biblioteca-pandas-em-python/">Como usar o objeto DataFrame da biblioteca Pandas em Python</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como usar o objeto DataFrame da biblioteca Pandas em Python</h2>
<p>Anteriormente falamos sobre o <a href="http://www.bosontreinamentos.com.br/programacao-em-python/como-usar-o-objeto-series-da-biblioteca-pandas-em-python/">objeto Series do Pandas</a>, e neste artigo vamos explorar algumas funções de um outro tipo de objeto muito comum também fornecido pelo módulo Pandas, o DataFrame.</p>
<p>Os DataFrames do Pandas são uma estrutura de dados bastante versátil e poderosa que pode ser usada em análise, manipulação e processamento de dados em Python. Eles são empregados em uma ampla gama de aplicações de várias áreas, incluindo análise de dados, ciência de dados, engenharia, finanças, pesquisa e muito mais.</p>
<p>Algumas das principais aplicações dos DataFrames do Pandas incluem:</p>
<ul>
<li><strong>Pré-processamento de Dados</strong>: Limpeza, formatação, dados duplicados, valores ausentes, transformação nos dados</li>
<li><strong>Análise e Exploração de Dados</strong>: Importação de dados, Cálculos de <a href="http://www.bosontreinamentos.com.br/programacao-em-python/estatistica-descritiva-em-python-media-mediana-variancia-e-desvio-padrao/">Estatística Descritiva</a> (média, mediana, desvio-padrão, etc.).</li>
<li><strong>Manipulação de Dados</strong>: Filtro, seleção e ordenação para extrair informações específicas dos dados; funções de agregação, colunas calculadas</li>
<li><strong>Análise de Séries Temporais:</strong> Manipulação e análise de dados temporais, como séries temporais de preços de ações, dados climáticos, etc.; reamostragem</li>
<li><strong>Modelagem Estatística e Machine Learning</strong>: Criação de conjuntos de treinamento e teste em a<a href="http://www.bosontreinamentos.com.br/inteligencia-artificial/o-que-e-machine-learning-uma-introducao-ao-aprendizado-de-maquina/">prendizado de máquina</a>, divisão de dados para validação cruzada, etc.</li>
</ul>
<p>entre muitas outras.</p>
<p>Além disso, os DataFrames podem ser integrados com outras bibliotecas, como por exemplo as bibliotecas <a href="http://www.bosontreinamentos.com.br/programacao-em-python/introducao-a-biblioteca-numpy-em-python/">NumPy</a>, SciPy, <a href="http://www.bosontreinamentos.com.br/programacao-em-python/graficos-basicos-com-a-biblioteca-matplotlib-em-python/">Matplotlib</a> e inúmeras outras, permitindo executar diversas tarefas adicionais, como visualização de dados e cálculos complexos sobre os datasets, por exemplo.</p>
<h3>O que é um DataFrame?</h3>
<p>Um objeto do tipo DataFrame representa uma tabela de dados retangular bidimensional semelhante a uma tabela de banco de dados ou uma planilha do Excel, contendo uma coleção ordenada de colunas, em que cada uma pode ter um tipo de valor diferente (numérico, string, booleano etc.).</p>
<p>O DataFrame possui índices tanto para linha quanto para coluna; pode ser imaginado como um array de objetos Series, todos compartilhando o mesmo índice.</p>
<p>Há várias formas de construir um DataFrame, embora as mais comuns sejam a partir de dados armazenados em<a href="http://www.bosontreinamentos.com.br/category/bancos-de-dados/"> bancos de dados</a>, arquivos CSV, arquivos de planilhas como o Excel, dicionários com listas de mesmo tamanho ou ainda a partir de <a href="http://www.bosontreinamentos.com.br/programacao-em-python/como-criar-um-array-no-python-com-numpy/">arrays NumPy</a>, entre outras.</p>
<p>Neste tutorial vamos criar DataFrames a partir de dicionários para explorar algumas de suas funcionalidades. Nos próximos tutoriais, vamos trabalhar também com importação de dados de planilhas do Excel, arquivos CSV e tabelas de bancos de dados relacionais, entre outras tarefas.</p>
<h3>Criar um DataFrame a partir de um Dicionário</h3>
<p>Vamos começar criando um DataFrame de exemplo a partir de um dicionário de dados. Antes disso, precisamos importar o módulo em nosso script:</p>
<pre><strong>import pandas as pd</strong></pre>
<p>Vamos criar agora um DataFrame a partir de um dicionário que contém nomes de países, quantidade de títulos mundiais da FIFA, e ano em que o país ganhou seu primeiro título.</p>
<pre><strong>dicionario={'País':['Brasil','Uruguai','Inglaterra','Espanha','Holanda','Itália','Argentina','Alemanha','França'],</strong>
<strong>'Ano':[1958,1930,1966,2010,None,1934,1978,1954,1998],</strong>
<strong>'Titulos':[5,2,1,1,0,4,3,4,2]</strong>
<strong>}</strong>
<strong>dados = pd.DataFrame(dicionario)</strong>
<strong>print(dados)</strong></pre>
<p><em><strong>Saída:</strong></em></p>
<pre><span style="color: #000000;">  País       Ano    Titulos</span>
<span style="color: #000000;">0 Brasil     1958.0       5</span>
<span style="color: #000000;">1 Uruguai    1930.0       2</span>
<span style="color: #000000;">2 Inglaterra 1966.0       1</span>
<span style="color: #000000;">3 Espanha    2010.0       1</span>
<span style="color: #000000;">4 Holanda    NaN          0</span>
<span style="color: #000000;">5 Itália     1934.0       4</span>
<span style="color: #000000;">6 Argentina  1978.0       3</span>
<span style="color: #000000;">7 Alemanha   1954.0       4</span>
<span style="color: #000000;">8 França     1998.0       2</span></pre>
<p>Note que na linha correspondente à Holanda a coluna Ano traz o valor <strong>NaN</strong>, que significa &#8220;<em>Not a Numbe</em>r&#8221; (Não é um Número), indicando que este dado está ausente (a Holanda ainda não ganhou nenhuma copa, por isso um valor para a coluna de ano não existe!)</p>
<h3>Mostrar início ou fim do dataset</h3>
<p>Se o conjunto de dados for grande e não quisermos exibi-lo inteiro na tela, podemos imprimir apenas as cinco primeiras ou as cinco últimas linhas com os métodos head() e tail(), respectivamente:</p>
<pre><span style="color: #339966;"><strong># 5 primeiras linhas</strong></span>
<strong>print(dados.head())

</strong><span style="color: #339966;"><strong># 5 últimas linhas</strong></span>
<strong>print(dados.tail())</strong></pre>
<p>Por padrão, o Pandas limita o número de linhas exibidas na tela a 60 linhas e o número de colunas a 20 colunas, para evitar saída de grandes volumes de dados.</p>
<h3>Manipulação de colunas</h3>
<p>Podemos alterar a ordem das colunas passando como parâmetro ao método .DataFrame() uma lista de valores a serem usados como cabeçalho:</p>
<pre><strong>dados = pd.DataFrame(dados, columns=['Titulos','País','Ano'])</strong>
<strong>print(dados)</strong></pre>
<p>Para ver apenas os nomes das colunas constituintes do df:</p>
<pre><strong>print(dados.columns)</strong></pre>
<p>Para imprimir colunas individuais (em vez do DataFrame completo) podemos passar o nome da coluna desejada como valor de índice (entre colchetes), ou então chamar a coluna pelo seu nome como uma propriedade (precedida de um ponto):</p>
<pre><strong>print('Países:')</strong>
<strong>print(dados['País'])</strong>
<strong>print('\nAnos:')</strong>
<strong>print(dados.Ano)</strong></pre>
<p>Adicionamos uma nova coluna ao DF simplesmente passando seu nome entre colchetes, e atribuindo valores a partir de uma sequência, como uma lista. Podemos inicializar a coluna com um único valor também (mesmo valor em todas as linhas), como por exemplo o valor 0:</p>
<pre><span style="color: #339966;"><strong># Acrescentar uma coluna ao DataFrame:</strong></span>
<span style="color: #ff0000;"><strong>dados['Participações'] = 0</strong></span>
<span style="color: #ff0000;"><strong>print(dados)</strong></span></pre>
<pre><span style="color: #339966;"><strong># Preencher a coluna com valores de uma lista:</strong></span>
<strong>part = [22,14,16,16,11,18,18,20,16]</strong>
<strong>dados['Participações'] = part</strong>
<strong>print(dados)</strong></pre>
<p>Para excluir uma coluna do DataFrame empregamos a função del:</p>
<pre><span style="color: #339966;"><strong># Excluir coluna "Participações"</strong></span>
<strong>del dados['Participações']</strong>
<strong>print(dados)</strong></pre>
<h3>Manipulação de linhas</h3>
<p>É possível excluir uma linha usando o método .drop(), passando o número da linha a excluir como um valor de índice. No exemplo a seguir vamos criar um novo DataFrame a partir do atual, excluindo nele a linha 4:</p>
<pre><span style="color: #339966;"><strong># Excluir a linha 4 (Holanda)</strong></span>
<strong>dados2 = dados.drop([4])</strong>
<strong>print(dados2)</strong></pre>
<p>Para excluir várias linhas de uma vez, basta passar uma lista com seus números de índice:</p>
<pre><span style="color: #339966;"><strong># Excluir as linhas 3, 4 e 5 de uma vez</strong></span>
<strong>dados2 = dados.drop([4, 3, 5])</strong>
<strong>print(dados2)</strong></pre>
<p>Para excluir uma linha no DataFrame em si, sem precisar criar uma cópia dele, usamos o parâmetro inplace=True:</p>
<pre><span style="color: #339966;"><strong># Excluir linhas in loco</strong></span>
<strong>dados.drop(4, inplace=True)</strong>
<strong>print(dados)</strong></pre>
<h3>Slicing em DataFrames</h3>
<p>Podemos retornar um conjunto de linhas passando seus índices, inclusive usando fatiamento (slicing):</p>
<pre><span style="color: #339966;"><strong># Retornar linhas de 1 a 5:</strong></span>
<strong>print(dados[1:5])</strong></pre>
<p>Também é possível realizar essa operação usando rótulos em vez de números de índice:</p>
<pre><span style="color: #339966;"><strong># Fatiamento com rótulos

</strong></span><strong>dicionario={'País':['Brasil','Uruguai','Inglaterra','Espanha','Holanda','Itália','Argentina'],</strong>
<strong>'Ano':[1958,1930,1966,2010,None,1934,1978],</strong>
<strong>'Titulos':[5,2,1,1,0,4,3]</strong>
<strong>}

</strong><strong>dados = pd.DataFrame(dicionario, index=['a','b','c','d','e','f','g'])</strong>
<span style="color: #339966;"><strong># Mostra df completo</strong></span>
<strong>print(dados, '\n')

</strong><span style="color: #339966;"><strong># Mostra apenas linhas de rótulos b até e:</strong></span>
<strong>print(dados['b':'e'])</strong></pre>
<h3>Indexação: loc() e iloc()</h3>
<p>Podemos realizar indexação com método .loc(), retornando linhas e colunas específicas apenas por meio de seus rótulos:</p>
<pre><span style="color: #339966;"><strong># Indexação com loc</strong></span>
<span style="color: #339966;"><strong># Linha b, colunas de País e Títulos</strong></span>
<strong>print(dados.loc['b',['País', 'Titulos']])</strong>
<span style="color: #339966;"><strong># Linhas de a a d, coluna de Ano:</strong></span>
<strong>print(dados.loc[:'d','Ano'])</strong></pre>
<p>Ou ainda indexar com método .iloc(), que retorna as linhas e colunas específicas de acordo com números de índices:</p>
<pre><span style="color: #339966;"><strong># Indexação com iloc</strong></span>
print(dados.iloc[1,[0, 2]])</pre>
<h3>Ordenação em Dataframes</h3>
<p>Podemos exibir os dados ordenados por índice tanto em ordem crescente quando decrescente com o método sort_index():</p>
<pre><span style="color: #339966;"><strong># Ordenação por índice</strong></span>
<strong>print(dados.sort_index())

</strong><span style="color: #339966;"><strong># Ordenação por índice em ordem inversa</strong></span>
<strong>print(dados.sort_index(ascending=False))

</strong>Para ordenar os dados pelos valores de uma coluna específica usamos o método sort_values(), passando os nomes das colunas na ordem em que desejamos a ordenação:
<span style="color: #339966;"><strong> Ordenação por colunas: ordem alfabética de país</strong></span>
<strong>print(dados.sort_values(by='País'))

</strong><span style="color: #339966;"><strong># Ordem alfabética inversa:</strong></span>
<strong>print(dados.sort_values(by='País', ascending=False))

</strong><span style="color: #339966;"><strong># Ordenação por várias colunas: ordem crescente de títulos e alfabética de países</strong></span>
<strong>print(dados.sort_values(by=['Titulos','País']))

</strong><span style="color: #339966;"><strong># Ou ainda ordem decrescente de títulos e alfabética de países</strong></span>
<span style="color: #339966;"><strong># Ordenação por várias colunas</strong></span>
<strong>print(dados.sort_values(by=['Titulos','País'],</strong>
<strong>ascending = [False, True]))</strong></pre>
<h3>Renomear colunas</h3>
<p>É possível renomear uma ou mais colunas de um DF usando o método <strong>rename()</strong>. Para tal, passamos um mapeamento de dicionário para o parâmetro &#8220;<em>columns</em>&#8221; contendo pares chave:valor nos quais a chave é o nome da coluna a renomear, e o valor é o novo nome que será usado.</p>
<p>Por exemplo, vamos renomear a coluna &#8220;Titulos&#8221; para &#8220;Campeonatos&#8221;:</p>
<pre><span style="color: #339966;"><strong># Renomear uma coluna </strong></span>
<strong>dados2=dados.rename(columns = {'Titulos':'Campeonatos'})</strong>
<strong>print(dados2.columns)</strong></pre>
<p>Uma alternativa é usar o parâmetro axis=&#8217;columns&#8217; ou axis=&#8217;1&#8242;:</p>
<pre><span style="color: #339966;"><strong># Renomear a coluna de volta</strong></span>
<strong>dados2=dados.rename({'Campeonatos':'Titulos'}, axis='columns')</strong>
<strong>print(dados2.columns)</strong></pre>
<p>Para alterar o nome da coluna in loco (sem criar outro df), usamos novamente o parâmetro inplace:</p>
<pre><span style="color: #339966;"><strong># Renomear coluna no DataFrame atual (inplace).</strong></span>
<strong>dados2.rename({'Titulos':'Campeonatos'}, axis='columns', inplace=True)</strong>
<strong>print(dados2.columns)</strong></pre>
<p>Para renomear múltiplas colunas o processo é o mesmo, bastando passá-las como um mapeamento de dicionário.<br />
Por exemplo, vamos renomear as colunas &#8220;Campeonatos&#8221; e &#8220;Ano&#8221; para &#8220;Titulos&#8221; e &#8220;Primeiro_Titulo&#8221; respectivamente no df dados2:</p>
<pre><span style="color: #339966;"><strong># Renomear várias colunas de uma vez no DataFrame atual.</strong></span>
<strong>dados2.rename({'Campeonatos':'Titulos', 'Ano':'Primeiro_Titulo'}, axis='columns', inplace=True)</strong>
<strong>print(dados2.columns)</strong></pre>
<p>Também podemos renomear todas as colunas de um dataframe de uma vez, passando para isso uma lista com os novos nomes a usar. O comprimento da lista deve ser igual ao número de colunas existentes no df, e as colunas serão renomeadas na ordem em que aparecem.</p>
<p>Note que neste caso renomeamos as colunas SEM usar o método rename().</p>
<p>Por exemplo:</p>
<pre><span style="color: #339966;"><strong># Renomear colunas com lista</strong></span>
<strong>nomes = ['Nação','Ano_Ganhou','Qtde_Titulos']</strong>
<strong>dados2.columns = nomes</strong>
<strong>print(dados2.columns)</strong></pre>
<h4>Renomear colunas adicionando sufixos ou prefixos</h4>
<p>Às vezes precisamos renomear colunas adicionando sufixos ou prefixos na forma de uma sequência de caracteres. Podemos fazer isso usando os métodos add_prefix() ou add_suffix(). Por exemplo, vamos adicionar o prefixo &#8220;copa_&#8221; a todas as colunas do dataframe dados2:</p>
<pre><span style="color: #339966;"><strong># Renomear todas as colunas adicionando um prefixo</strong></span>
<strong>dados2 = dados2.add_prefix('copa_')</strong>
<strong>print(dados2.columns)</strong></pre>
<p>Leia mais aqui: <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.add_prefix.html" target="_blank" rel="noopener">https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.add_prefix.html</a></p>
<p>Para remover um prefixo ou sufixo, podemos usar (entre outros) o método str.replace(), que substitui todas as ocorrências de uma determinada string por outra string (ou nenhuma string, que é o caso). Vamos remover o prefixo &#8220;copa_&#8221; adicionado anteriormente para testar:</p>
<pre><span style="color: #339966;"><strong># Remover prefixo com método str.replace</strong></span>
<strong>dados2.columns = dados.columns.str.replace('copa_', '')</strong>
<strong>dados2</strong></pre>
<p>Cuidado ao usar esse método para remover prefixos e sufixos, pois se houverem outras sequências de caracteres nos nomes das colunas iguais às que se deseja remover, estas também serão removidas, alterando de forma indesejada os nomes.</p>
<p>No próximo artigo estudaremos algumas técnicas de limpeza e tratamento de dados ausentes ou duplicados em um dataframe.</p>
<h3>Colabore com a Bóson Treinamentos</h3>
<p>Ajude o canal adquirindo meus cursos na Udemy:</p>
<ul>
<li>Bancos de Dados com MySQL Básico: <a href="https://bit.ly/35QdWE4" target="_blank" rel="noopener">https://bit.ly/35QdWE4</a></li>
<li>Lógica de Programação com Português Estruturado: <a href="https://bit.ly/3QKPn22" target="_blank" rel="noopener">https://bit.ly/3QKPn22</a></li>
<li>Programação em Python do Zero: <a href="https://bit.ly/python-boson" target="_blank" rel="noopener">https://bit.ly/python-boson</a></li>
</ul>
<p>Adquira também livros e outros itens na loja da Bóson Treinamentos na Amazon e ajude o canal a se manter e crescer: <a href="https://www.amazon.com.br/shop/bosontreinamentos" target="_blank" rel="noopener">https://www.amazon.com.br/shop/bosontreinamentos</a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-python/como-usar-o-objeto-dataframe-da-biblioteca-pandas-em-python/">Como usar o objeto DataFrame da biblioteca Pandas em Python</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/programacao-em-python/como-usar-o-objeto-dataframe-da-biblioteca-pandas-em-python/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
