TransWikia.com

Plotar na horizontal (coluna a coluna) - Python

Stack Overflow em Português Asked by Diego Provesi on January 4, 2022

Boa tarde, amigos

Tudo bem?

Estou com um arquivo em XML do qual gostaria de retirar os dados conforme apresentado abaixo e plotar em colunas, não linha a linha como o código está realizando, no caso os dados ficariam lado a lado (horizontal).

tree =  ET.parse('/content/drive/My Drive/Python/Download CVM/Extract/DFP/00759520191231401/InfoFinaDFin.xml')
root = tree.getroot()
xml_data_to_csv = open('Out.csv', 'w')
list_head=[]
Csv_writer=csv.writer(xml_data_to_csv)
count=0

for element in root.findall('InfoFinaDFin'):
  List_nodes =[]
  #Get head by tag
  if count == 0:
    #get child node
    
    DescricaoConta1 = element.find('DescricaoConta1').text
    List_nodes.append(DescricaoConta1)
    
  
    #Write List_nodes to csv
    Csv_writer.writerow(List_nodes)
  
#close csv file

xml_data_to_csv.close()

Resultado do código apresentado: (Gostaria que ficasse: 1 row x 859 columns)

inserir a descrição da imagem aqui

One Answer

Você poderia colocar um trecho do XML para facilitar a compreensão.

Da forma que está, você pode tentar simplesmente guardar os valores numa lista e depois escrever num arquivo separados por virgula. Assim ao ler como csv ele estaria como o esperado, com uma linha e 858 colunas:

tree =  ET.parse('/content/drive/My Drive/Python/Download CVM/Extract/DFP/00759520191231401/InfoFinaDFin.xml')
root = tree.getroot()
colunas = []

for element in root.findall('InfoFinaDFin'):
    DescricaoConta1 = element.find('DescricaoConta1').text
    colunas.append(DescricaoConta1)
  

with open('Out.csv', 'w') as file:
    file.write(','.join(colunas))

Answered by Damião Martins on January 4, 2022

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP