Ir para conteúdo
  • 0

.CSV (tratamento de dados)


João Gabriel
Ir para solução Solucionado por Joao Barbosa ,

Pergunta

  • Alunos

Pessoal boa tarde! Poderiam me ajudar em uma situação? Quando faço a importação de uma base .CSV para o PQ e sempre que dou inicio a processo de tratamento ele quebra as colunas!

Já tentei colunas de exemplo, Tabular e dividir por coluna e quando temos a informação de vazio ",," e virgula "," ele quebra a formatação da coluna. segue exemplo abaixo e espero ter passado de uma forma que possam ter entendido.

image.png.90fc2b90a12bf6a4168939576e193a42.pngimage.png.940e4e5528470fd9a05bb7abe8de0758.pngimage.thumb.png.2baf4dc0137d3590a171f02b005c961a.png

  • Like 1
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 2
  • Alunos
  • Solução

@João Gabriel Boa Tarde! 

Pelo que vi não e possível dividir seu arquivo por virgulas pois em alguns títulos existem as virgulas nativas , então dividindo por cada ocorrência as colunas ficariam fora de ordem também o único jeito que vi foi de splitar as colunas uma a uma até chegar no objetivo que eu entendendo que era o desejado por você. Com toda certeza deve ter um jeito mais fácil e menos moroso de fazer isso e nossos colegas poderão ajudar , mas caso esteja com pressa acho que desse jeito deve servir anexo o power bi.E abaixo colei o código do editor avançado do power query.

let
    Fonte = Csv.Document(File.Contents("C:\Users\Usuario\Desktop\ViewingActivity.csv"),[Delimiter="#(tab)", Columns=3, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    #"Dividir Coluna por Delimitador" = Table.SplitColumn(Fonte, "Column1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.None, false), {"Column1.1", "Column1.2"}),
    #"Dividir Coluna por Delimitador1" = Table.SplitColumn(#"Dividir Coluna por Delimitador", "Column1.2", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, false), {"Column1.2.1", "Column1.2.2"}),
    #"Dividir Coluna por Delimitador2" = Table.SplitColumn(#"Dividir Coluna por Delimitador1", "Column1.2.2", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, false), {"Column1.2.2.1", "Column1.2.2.2"}),
    #"Dividir Coluna por Delimitador3" = Table.SplitColumn(#"Dividir Coluna por Delimitador2", "Column1.2.2.2", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, false), {"Column1.2.2.2.1", "Column1.2.2.2.2"}),
    #"Dividir Coluna por Delimitador4" = Table.SplitColumn(#"Dividir Coluna por Delimitador3", "Column1.2.2.2.2", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, true), {"Column1.2.2.2.2.1", "Column1.2.2.2.2.2"}),
    #"Dividir Coluna por Delimitador5" = Table.SplitColumn(#"Dividir Coluna por Delimitador4", "Column1.2.2.2.2.1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, true), {"Column1.2.2.2.2.1.1", "Column1.2.2.2.2.1.2"}),
    #"Dividir Coluna por Delimitador6" = Table.SplitColumn(#"Dividir Coluna por Delimitador5", "Column1.2.2.2.2.1.1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, true), {"Column1.2.2.2.2.1.1.1", "Column1.2.2.2.2.1.1.2"}),
    #"Dividir Coluna por Delimitador7" = Table.SplitColumn(#"Dividir Coluna por Delimitador6", "Column1.2.2.2.2.1.1.1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, true), {"Column1.2.2.2.2.1.1.1.1", "Column1.2.2.2.2.1.1.1.2"}),
    #"Dividir Coluna por Delimitador8" = Table.SplitColumn(#"Dividir Coluna por Delimitador7", "Column1.2.2.2.2.1.1.1.1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, true), {"Column1.2.2.2.2.1.1.1.1.1", "Column1.2.2.2.2.1.1.1.1.2"}),
    #"Cabeçalhos Promovidos" = Table.PromoteHeaders(#"Dividir Coluna por Delimitador8", [PromoteAllScalars=true]),
    #"Tipo Alterado" = Table.TransformColumnTypes(#"Cabeçalhos Promovidos",{{"Profile Name", type text}, {"Start Time", type datetime}, {"Duration", type time}})
in
    #"Tipo Alterado"

Joao Gabriel.pbix

  • Like 1
  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 1
  • Alunos
Em 22/01/2022 em 19:11, João Gabriel disse:

Pessoal boa tarde! Poderiam me ajudar em uma situação? Quando faço a importação de uma base .CSV para o PQ e sempre que dou inicio a processo de tratamento ele quebra as colunas!

Já tentei colunas de exemplo, Tabular e dividir por coluna e quando temos a informação de vazio ",," e virgula "," ele quebra a formatação da coluna. segue exemplo abaixo e espero ter passado de uma forma que possam ter entendido.

image.png.90fc2b90a12bf6a4168939576e193a42.pngimage.png.940e4e5528470fd9a05bb7abe8de0758.pngimage.thumb.png.2baf4dc0137d3590a171f02b005c961a.png

Olá @João Gabriel

Você pode fazer de uma forma mais simples:


Você vai importar com a opção UTF8, e a delimitação por "PONTO E VIRGULA".
Depois você vai em Transformar e Mesclar colunas. Mescle as 3 colunas.
Depois você vai fazer a divisão das colunas por apenas VIRGULA a cada ocorrência.

image.png.5b726f7155312ed2e0084d8c8774e650.png

Editado por Dilian Vaz
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
3 horas atrás, Joao Barbosa disse:

@João Gabriel Boa Tarde! 

Pelo que vi não e possível dividir seu arquivo por virgulas pois em alguns títulos existem as virgulas nativas , então dividindo por cada ocorrência as colunas ficariam fora de ordem também o único jeito que vi foi de splitar as colunas uma a uma até chegar no objetivo que eu entendendo que era o desejado por você. Com toda certeza deve ter um jeito mais fácil e menos moroso de fazer isso e nossos colegas poderão ajudar , mas caso esteja com pressa acho que desse jeito deve servir anexo o power bi.E abaixo colei o código do editor avançado do power query.

let
    Fonte = Csv.Document(File.Contents("C:\Users\Usuario\Desktop\ViewingActivity.csv"),[Delimiter="#(tab)", Columns=3, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    #"Dividir Coluna por Delimitador" = Table.SplitColumn(Fonte, "Column1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.None, false), {"Column1.1", "Column1.2"}),
    #"Dividir Coluna por Delimitador1" = Table.SplitColumn(#"Dividir Coluna por Delimitador", "Column1.2", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, false), {"Column1.2.1", "Column1.2.2"}),
    #"Dividir Coluna por Delimitador2" = Table.SplitColumn(#"Dividir Coluna por Delimitador1", "Column1.2.2", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, false), {"Column1.2.2.1", "Column1.2.2.2"}),
    #"Dividir Coluna por Delimitador3" = Table.SplitColumn(#"Dividir Coluna por Delimitador2", "Column1.2.2.2", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, false), {"Column1.2.2.2.1", "Column1.2.2.2.2"}),
    #"Dividir Coluna por Delimitador4" = Table.SplitColumn(#"Dividir Coluna por Delimitador3", "Column1.2.2.2.2", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, true), {"Column1.2.2.2.2.1", "Column1.2.2.2.2.2"}),
    #"Dividir Coluna por Delimitador5" = Table.SplitColumn(#"Dividir Coluna por Delimitador4", "Column1.2.2.2.2.1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, true), {"Column1.2.2.2.2.1.1", "Column1.2.2.2.2.1.2"}),
    #"Dividir Coluna por Delimitador6" = Table.SplitColumn(#"Dividir Coluna por Delimitador5", "Column1.2.2.2.2.1.1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, true), {"Column1.2.2.2.2.1.1.1", "Column1.2.2.2.2.1.1.2"}),
    #"Dividir Coluna por Delimitador7" = Table.SplitColumn(#"Dividir Coluna por Delimitador6", "Column1.2.2.2.2.1.1.1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, true), {"Column1.2.2.2.2.1.1.1.1", "Column1.2.2.2.2.1.1.1.2"}),
    #"Dividir Coluna por Delimitador8" = Table.SplitColumn(#"Dividir Coluna por Delimitador7", "Column1.2.2.2.2.1.1.1.1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, true), {"Column1.2.2.2.2.1.1.1.1.1", "Column1.2.2.2.2.1.1.1.1.2"}),
    #"Cabeçalhos Promovidos" = Table.PromoteHeaders(#"Dividir Coluna por Delimitador8", [PromoteAllScalars=true]),
    #"Tipo Alterado" = Table.TransformColumnTypes(#"Cabeçalhos Promovidos",{{"Profile Name", type text}, {"Start Time", type datetime}, {"Duration", type time}})
in
    #"Tipo Alterado"

Joao Gabriel.pbix 594 kB · 0 downloads

@Joao Barbosa, boa tarde! muito obrigado pelo apoio e ajuda! já ajudou muito! também acho que deve haver algo mais prático para a resolução.

De qualquer forma obrigado pelo tempo dedicado em me apoiar!

  • Like 1
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...