Foto de Lucas C.
Lucas há 4 anos
Enviada pelo
Site

Python

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      
Python Geral Função lista Pandas funções Estruturas de decisão Intermediário Programação Orientada a Objetos tuplas dicionário Avançado OO
1 resposta
Professor Otávio J.
Respondeu há 4 anos
Contatar Otávio

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 :) 

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Tutoria com IA
Converse com a Minerva IA e aprenda, tire dúvidas e resolva exercícios
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Prefere professores para aulas particulares ou resolução de atividades?
Aulas particulares
Encontre um professor para combinar e agendar aulas particulares Buscar professor
Tarefas
Envie sua atividade, anexe os arquivos e receba ofertas dos professores Enviar tarefa