boa tarde, gostaria de saber se tem como em python usando o pandas pegar uma coluna que repete codigos e outra coluna que varia os nome e transformar a colunas de codigo em linha e aparecer um codigo de cada e abaixo aparecer os codigo variado junto com a coluna data por exemplo:
obra | pep | atv | txt |
122345 | 2343897234 | 10 | n liberado |
122345 | 2343897235 | 20 | liberado |
122345 | 2343897236 | 30 | liberado |
122345 | 2343897237 | 40 | liberado |
122345 | 2343897238 | 50 | n liberdao |
122345 | 2343897239 | 60 | n liberdao |
1223 | 2343897240 | 10 | liberado |
1223 | 2343897241 | 20 | liberado |
1223 | 2343897242 | 30 | liberado |
1223 | 2343897243 | 40 | liberado |
1223 | 2343897244 | 50 | n liberdao |
1223 | 2343897544 | 60 | n liberdao |
Resultado :
10 | 20 | 30 | 40 | 50 | 60 | |
122345 | n liberado | liberado | liberado | liberado | n liberdao | n liberdao |
1223 | liberado | liberado | liberado | liberado | n liberdao | n liberdao |
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Sim, é possível realizar a transformação que você descreveu usando o pandas em Python. Essa operação é conhecida como pivotamento de tabela, e você pode usar a função pivot_table
para fazer isso. O objetivo é transformar os valores da coluna atv
em cabeçalhos de colunas e agrupar os dados de acordo com os valores únicos na coluna obra
, usando os valores da coluna txt
para preencher a tabela.
Aqui está um exemplo de como você pode fazer isso:
import pandas as pd
# Exemplo de dados
dados = {
'obra': [122345, 122345, 122345, 122345, 122345, 122345, 1223, 1223, 1223, 1223, 1223, 1223],
'pep': [2343897234, 2343897235, 2343897236, 2343897237, 2343897238, 2343897239, 2343897240, 2343897241, 2343897242, 2343897243, 2343897244, 2343897544],
'atv': [10, 20, 30, 40, 50, 60, 10, 20, 30, 40, 50, 60],
'txt': ['n liberado', 'liberado', 'liberado', 'liberado', 'n liberdao', 'n liberdao', 'liberado', 'liberado', 'liberado', 'liberado', 'n liberdao', 'n liberdao']
}
# Criando o DataFrame
df = pd.DataFrame(dados)
# Pivotando a tabela
pivot_df = df.pivot_table(index='obra', columns='atv', values='txt', aggfunc='first')
# Exibindo o resultado
print(pivot_df)
No código acima:
df
com os dados de exemplo fornecidos.pivot_table
para transformar este DataFrame. Definimos index='obra'
para usar a coluna obra
como índice das linhas. Com columns='atv'
, indicamos que os valores únicos da coluna atv
devem se tornar os novos cabeçalhos de colunas. O parâmetro values='txt'
especifica que os valores das novas células devem vir da coluna txt
. O parâmetro aggfunc='first'
é utilizado para resolver possíveis conflitos ao pivotar (neste caso, apenas pegamos o primeiro valor encontrado, mas dependendo dos seus dados, você pode precisar ajustar isso).Este código produzirá a tabela pivotada conforme você descreveu, transformando os códigos da coluna atv
em cabeçalhos de coluna e agrupando os dados por obra
, com os respectivos valores de txt
preenchendo as células.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Oi, sinto muito que nenhum professor da área tenha te respondido depois de tantos meses (que não é meu caso, sou professor de História). Indico utilizar a seção Tarefas desta plataforma, abraços.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.