How to save in CSV or Excel a table generated from another table with pandas or pivot table?

Asked

Viewed 7,298 times

2

I have a table with data of several years from 2000 to 2015 in CSV format. In my code I ask the user to enter a year he wants to see and return on the screen only the years he requested. Ex.: 2000.

And I want this data to be saved in a new CSV file (preferably Excel) but I’m not able to do that. When saved, it only copies the table with another name.

Follow the code below:

#enconding utf-8

import os
import platform
import pandas as pd
import pandas as to_csv
import pandas as DataFrame

plataforma = platform.system()

if (plataforma == "Windows"):
    os.system("cls")
else:
    os.system("clear")

#arquivo = open("C:\python\lista.txt", "r")
#texto = arquivo.read()

print ("\tESCOLHA UMA DAS OPÇÕES ABAIXO:\n")
print ("\tEscolha '0' para ver os dados completos.\n")
print ("\tEscolha '1' se deseja ver os dados de um ANO específico.\n")
print ("\tEscolha '2' para ver estatísticas.\n")



df = pd.read_csv("base_municipios_homicidios.csv", delimiter=";", names=["CÓDIGO MUNICÍPIO",
    "ANO","HOMICÍDIOS","IDADE MÉDIA","PROPORÇÃO NEGROS"])
#escolha = df.loc[[entrada]]
maximo = df.max()
minimo = df.min()
descricao = df.describe()
media = df.mean()

ano = int (input("Informe um ANO: "))

imprimir_ano = df.loc[(df["ANO"] == ano)]

nova_tabela = df.pivot_table(index="ANO")


print(imprimir_ano)
print (nova_tabela)

df.to_csv("vai.csv", data = imprimir_ano)

#print (df)
print("\nVALOR MÁXIMO")
print("------------\n")
print("%.f" % maximo,"\n")    
print("\nVALOR`MÍNIMO")
print("------------\n")
print(minimo,"\n")
print("\nDESCRIÇÃO")
print("------------\n")
print(descricao,"\n")
print("\nMÉDIA")
print("------------\n")
print(media,"\n")

I thought if I put the user input in df.to_csv("vai.csv", data = imprimir_ano) I could save the data, but it was unsuccessful.

1 answer

1

You can use the module Xlsxwriter to export as Excel file, to install just run one of the commands:

# Utilizando pip
pip install XlsxWriter

# Utilizando easy_install
easy_install XlsxWriter

Following the simple example found in the documentation, your code will look like this:

excel = pd.ExcelWriter('NOME_DO_ARQUIVO.xlsx', engine='xlsxwriter')
imprimir_ano.to_excel(excel, sheet_name='Dados de um ANO específico')
excel.save()

see working:

Exportando para Excel

Complete code:

#enconding utf-8

import os
import pandas as pd
import pandas as to_csv
import pandas as DataFrame

print ("\tESCOLHA UMA DAS OPÇÕES ABAIXO:\n")
print ("\tEscolha '0' para ver os dados completos.\n")
print ("\tEscolha '1' se deseja ver os dados de um ANO específico.\n")
print ("\tEscolha '2' para ver estatísticas.\n")

df = pd.read_csv("lista.csv", delimiter=";", names=["CÓDIGO MUNICÍPIO","ANO","HOMICÍDIOS","IDADE MÉDIA","PROPORÇÃO NEGROS"])
maximo = df.max()
minimo = df.min()
descricao = df.describe()
media = df.mean()

ano = int (input("Informe um ANO: "))

imprimir_ano = df.loc[(df["ANO"] == ano)]
excel = pd.ExcelWriter('NOME_DO_ARQUIVO.xlsx', engine='xlsxwriter')
imprimir_ano.to_excel(excel, sheet_name='Dados de um ANO específico')
excel.save()

nova_tabela = df.pivot_table(index="ANO")
print(imprimir_ano)
print (nova_tabela)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.