Лабы / ЛР6 ООП
.docxЗадание 1:
import pandas as pd
file = pd.read_csv('c:/Users/19pol/Documents/Учеба/Лабы ООП/labs_oop/LAB_6/input.csv', header = None)
par = list(map(str,file.iloc[0])) #Параметры таблицы
par = tuple(map(float, par[0:2])) #Преобразовываем в кортеж и убираем NaN
file = file.drop(index = 0).astype('int') #Удаление 1 строчку и делаем все интом
num_rows = file.shape #Получаем кол-во строк и столбцов
#Проверка на несоответствие(можно не делать, но пусть)
if num_rows == par:
print(file)
else:
print("Размер таблицы не совпадает")
Задание 2:
import pandas as pd
class Students():
def __init__(self, st):
self.st = st
def name(self, k):
print(self.st.at[k, 'Фамилия Имя']) #обращаемся к элементу по индексу строки и названию столбца
def date(self, k):
print(self.st.at[k, 'Дата рождения'])
st = pd.DataFrame(columns = ['Фамилия Имя','Дата рождения'])#Создаем dataframe
while 1:
num = int(input("Введите кол-во студентов\n"))
for x in range(num):
name_st = input("Введите имя студента\n")
date_st = input("Введите дату рождения\n")
#заполняем dataframe
st = st.append({
"Фамилия Имя": name_st,
"Дата рождения": date_st
}, ignore_index=True)
student = Students(st)#экземпляр класса
c = int(input("Введите количество команд\n"))
for x in range(c):
action = input("Введите операцию и номер студента через пробел\n")
action_list = action.split()
if action_list [0] =="name" or action_list [0] == "name".upper() or action_list [0] == "name".title():
k = int("".join(action_list[1::1]))
student.name(k)
elif action_list [0] =="date" or action_list [0] =="date".upper() or action_list [0] =="date".title():
k = int("".join(action_list[1::1]))
student.date(k)
else:
print("bad request")