Jump to content

Como criar ficheiro .csv com os dados de outro ficheiro .csv em Python?


Luis Briga

Recommended Posts

Boa tarde. Neste momento estou a desenvolver um trabalho de Python que envolve manipulação de ficheiros CSV, e surgiu o seguinte problema:

Ao tentar colocar no 2º ficheiro csv uns dados do 1º ficheiro csv, o resultado é o seguinte:

"['nota_da_1_freq', 'nota_da_2_freq', 'nota_trabalho', 'nota_1_miniteste', 'nota_2_miniteste', 'nota_3_miniteste', 'class_final']","[0     16
1     16
2     11
3     12
4     10
5      8
6     10
7     11
8    9,5
Name: nota_1F, dtype: object, 0    14
1    14
2    10
3    11
4     8
5    11
6    12
7    13
8    10
Name: nota_2F, dtype: int64, 0    15
1    15
2    12
3    17
4    12
5    16
6    12
7    20
8    12
Name: nota_TP, dtype: int64, 0    16
1    16
2    14
3    15
4    14
5    14
6    17
7    14
8    15
Name: nota_1MT, dtype: int64, 0    17
1    17
2    12
3    12
4    12
5     0
6    14
7    12
8    18
Name: nota_2MT, dtype: int64, 0    15
1    17
2    13
3     8
4    13
5     9
6    13
7    13
8    17
Name: nota_3MT, dtype: int64]"

Os dados do 1º ficheiro CSV são os seguintes:

numero_de_aluno;nome;turma;aulas_lecionadas;aulas_assistidas;nota_1F;nota_2F;nota_TP;nota_1MT;nota_2MT;nota_3MT
75897;Luís Briga;1;75;71;16;14;15;16;17;15
76574;Edgar Santos;1;75;57;16;14;15;16;17;17
74632;Pedro Sousa;4;75;41;11;10;12;14;12;13
74632;Gonçalo Pinto;3;75;57;12;11;17;15;12;8
74632;Ana Margarida;4;75;66;10;8;12;14;12;13
74632;Diana Carvalho;5;75;75;8;11;16;14;0;9
74632;Justino Pereira;1;75;21;10;12;12;17;14;13
74632;Tiago Sousa;4;75;72;11;13;20;14;12;13
74632;Dinis Pinto;2;75;70;9,5;10;12;15;18;17

O objetivo era colocar todos os dados alinhados conforme o cabeçalho. O meu código é o seguinte:

import csv
from operator import index
from pickle import FALSE
from numpy import append
import pandas as pd

tabela = pd.read_csv("alunos.csv", sep=";")

row_list = [["nota_da_1_freq", "nota_da_2_freq", "nota_trabalho", "nota_1_miniteste", "nota_2_miniteste", "nota_3_miniteste", "class_final"],
              [tabela['nota_1F'], tabela['nota_2F'], tabela['nota_TP'], tabela['nota_1MT'], tabela['nota_2MT'], tabela['nota_3MT']]]

with open('class.csv', 'w') as file:
    writer = csv.writer(file)
    writer.writerow(row_list)

Desde já peço desculpa pela quantidade de informação, mas não estou mesmo a conseguir resolver este problema. Obrigado.

Link to comment
Share on other sites

Não podes simplesmente mandar para dentro do row_list a informação crua do que leste com o pandas uma vez que o pandas vai-te devolver dados e metadados e tu só queres os dados.

Pelo que me recordo do pandas tens métodos para obter apenas os dados, consulta a documentação.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.