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

0

I have a table with data for several years from 2000 to 2015 in CSV format. In my code I ask the user to type a year that 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 can not do that. When it saves, 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 that if I put the user input in df.to_csv("vai.csv", data = imprimir_ano) I could save the data but it was unsuccessful.

    
asked by anonymous 24.06.2018 / 23:19

1 answer

0

You can use the XlsxWriter module to export as an 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 documentation , your code looks 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 it working:

Completecode:

#encondingutf-8importosimportpandasaspdimportpandasasto_csvimportpandasasDataFrameprint("\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)
    
25.06.2018 / 01:06