Я создаю файл, который вводит оценки и имена, но у меня есть две проблемы: я не могу определить заголовок для данных, и когда я сортирую свою таблицу, она сортируется как списки, но я хотел бы отобразить ее как таблица: вот мой код когда я пытаюсь сохранить его, он сохраняет только первый ряд моей таблицы. Как я могу сохранить все отсортированные таблицы в CSV?
import csv
import operator
import pandas as pd
with open('Grade_list.csv', 'w', newline='') as stdFile:
writer = csv.writer(stdFile)
writer.writerow(["Last Name", "First Name", "Grade"])
writer.writerow(["Potter", "Harry",6.5])
writer.writerow(["Granger", "Hermione",11])
writer.writerow(["Weasley", "Ron",6])
action = input("Would you like to read, write, or sort data in this file?")
if action == "read":
fileObj = open("Grade_list.csv","r")
print(fileObj.read())
elif action == "write":
nbStudents= float(input("How Many Student Records would you like to add? "))
i = 0
while i<nbStudents:
with open('Grade_list.csv', 'a', newline='') as stdFile:
writer=csv.writer(stdFile)
writer.writerow([input("Please Provide the Last Name of the student: "), input("Please Provide the First Name of the student : "), float(input("Please Provide Grade of the student: "))])
i = i+1
elif action =="sort":
fileObj = open("Grade_list.csv","r")
action2= input("Would you like to sort the data based on Last Names or Grades? ")
if action2=="names":
df = pd.read_csv('Grade_list.csv')
df = df.sort_values(by=['Last Name'])
print(df)
elif action2=="grades":
df = pd.read_csv('Grade_list.csv')
df = df.sort_values(by=['Grade'], ascending=False)
print(df)
savingFile= input("Would you like to save the sorted list?")
if savingFile=="yes":
savingAction=input("Would you like to save your sorted list as a new file, or would you like to overwrite the exisiting file? Answer new to save in a new file, and overwrite to save your sorted file in the exisitng list ")
if savingAction=="new":
with open('Grade_list2.csv', 'w', newline='') as stdFile2:
writer=csv.writer(stdFile2)
writer.writerow(df)
elif savingAction=="overwrite":
with open('Grade_list.csv', 'w', newline='') as stdFile:
writer=csv.writer(stdFile)
writer.writerow(df)
elif savingFile=="no":
print("OK, Bye!")