Python

Python Geral Básico Função NumPy lista Pandas funções Estruturas de decisão Intermediário Programação Orientada a Objetos tuplas dicionário Avançado OO

Eu tenho um DataFrame e consigo lê todas colunas. Porem gostaria de colocar celulas iguais na mesma linha e se não houver em uma coluna igual mas nas demais sim coloque um espaço em branco ou nan tanto faz.

exemplo:

coluna1        coluna2                coluna3      
   a                       b                           a      
   c                          a                         c      
   b                         h                          b      
       
       
reposta que quero: 
coluna1        coluna2                coluna3      
   a                       a                          a      
   c                          nan                        c      
   b                         b                          b      
nan                        h                        nan      
Foto de Lucas C.
Lucas perguntou há 10 meses

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
1 resposta
1
votos
1 usuário votou nessa resposta como útil.
Professor Otávio J. Respondeu há 10 meses
Melhor resposta
Melhor resposta escolhida pelo autor da dúvida

Olá Lucas,

Se eu entendi bem, você não está preocupado em tratar os valores repetidos na mesma coluna, dessa forma, o código abaixo pode funcionar:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.array([['a', 'b', 'a'], ['c', 'a', 'c'], ['b',  'h', 'b']]), columns=['coluna1', 'coluna2', 'coluna3'])

valores_unicos = np.unique(df.values)
novas_linhas = []
for valor in valores_unicos:
    nova_linha = []
    for coluna in list(df.columns):
        nova_linha.append(valor if valor in list(df[coluna]) else np.NaN)
        
    novas_linhas.append(nova_linha)
    
df = pd.DataFrame(novas_linhas, columns=list(df.columns))

 

Uma breve explicação: inicialmente, pegamos todos os valores únicos do dataframe. Após, criamos cada linha inidividualmente dentro do primeiro for, e para criar a linha fazemos um novo loop pelas colunas. Talvez não a solução mais rápida, mas funciona pro seu exemplo.

Importante ver que isso talvez gere problemas se você tiver valores duplicados na mesma coluna, porém, não sabia qual o comportamento esperado nesse caso :) 

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

Professores particulares de Python

+ Ver todos
Encontre e contrate um professor particular para te ajudar nos estudos.

Otávio J.

2 horas ministradas

Otávio J.

Porto Alegre / RS
Mestrado: Ciência da Computação/Inteligencia Artificial (Université de Bordeaux)
Python - Intermediário Python - Programação Orientada a Objetos Python - automação
Professor de programação com 10 anos de experiência, ajudo desde o básico até o avançado. Especialista em automação e machine learning.
R$ 40 / aula Conversar Whatsapp do professor Otávio J. Whatsapp do professor Otávio J. Ver WhatsApp
1ª aula demonstrativa

Bruno S.

4,9 (50)
85 horas ministradas
26 tarefas resolvidas
Bruno está online

Bruno S.

São Paulo / SP
Doutorado: Astrofísica (Johann Wolfgang Goethe Universität - Frankfurt am Main)
Python - Programação Orientada a Objetos Python - Função Python - Estruturas de decisão
Físico (usp), programador e doutor em astrofísica na alemanha, programador web (js/ts, angular e react). Aprenda matemática e física! E programacao!

César D.

4,9 (364)
36 horas ministradas
435 tarefas resolvidas
César Augusto está online

César D.

Mogi Guaçu / SP
Graduação: Matemática Aplicada e Computacional (UNICAMP)
Programação em Python NumPy Python - Geral Programação em Python Básico
Faça aulas de Matemática, Computação, Teoria Musical
R$ 60 / aula Conversar Whatsapp do professor César D. Whatsapp do professor César D. Ver WhatsApp
1ª aula demonstrativa

Recursos Profes

O Profes é uma solução completa de aprendizagem, com diversos recursos para
você aprender do jeito mais eficiente e personalizado possível.

Encontre um professor e combine aulas particulares Presenciais ou Online
  • Pode deixar uma solicitação grátis (até 7 professores entram em contato)
  • Ou paga para ver o Whatsapp dos professores que você escolher
  • Ou compra aulas a um preço fixo garantido com um excelente professor
Buscar professor
Envie uma tarefa, lista de exercícios, atividade ou projeto
  • Você define o prazo e o valor
  • Profes encontra um professor para resolver e retornar no seu prazo e valor
  • Interação com o professor por chat
  • Se não gostar da resolução, reembolsamos
Enviar Tarefa
Tenha uma aula online agora mesmo com um professor disponível
  • Você paga por minuto
  • Minutos restantes podem ser reutilizados ou reembolsados
  • Um excelente professor entra na Sala de Chat Profes ao vivo
  • Se em 5 min você não gostar, devolvemos o seu dinheiro
Pedir Profes Já