Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

concatenar dataframe

Olá a todos, tenho uma dúvida referente ao método "concat". o código abaixo, concatena dois dataframes:

eventos = {'m1': list(m1), 
            'm2': list(m2), 
            'm3': list(m3), 
            'm4': list(m4), 
            'm5': list(m5)}
moedas = pd.DataFrame(eventos)

df = pd.DataFrame(data = ['Cara', 'Coroa'], 
                    index = ['c', 'C'], 
                    columns = ['Faces'])

for item in moedas:
    df = pd.concat([df, moedas[item].value_counts()], 
                    axis = 1)
df <-- exibe todos os registros concatenado corretamente

Porém, se eu fazer uma simples troca no datafram e "novo", apenas o último registro é exibido:

eventos = {'m1': list(m1), 
            'm2': list(m2), 
            'm3': list(m3), 
            'm4': list(m4), 
            'm5': list(m5)}
moedas = pd.DataFrame(eventos)

df = pd.DataFrame(data = ['Cara', 'Coroa'], 
                    index = ['c', 'C'], 
                    columns = ['Faces'])

for item in moedas:
    dataframeNovo = pd.concat([df, moedas[item].value_counts()],  <--
                    axis = 1)
dataframeNovo <-- exibe apenas o último registro concatenado.

Não consegui entender muito bem o motivo deste comportamento, porque quando passo a concatenação para um dataframe novo, exibe apenas o último registro concatenado? Se alguém souber esclarecer agraço.

1 resposta
solução!

Olá Lucas,

Acredito que seja apenas a diferença do nome da variável, no segundo exemplo você colocou:

dataframeNovo = pd.concat([df, moedas[item].value_counts()], axis = 1)

Nessa parte você está utilizando dataframeNovomas no concat tem é df, então trocando df por dataframeNovo dentro do concat e na criação do DataFrame deve resolver.

Espero ter ajudado, quaquer dúvida é só falar!