#python-3.x
#python-3.x
Вопрос:
Итак, у меня есть эти данные csv
Medium narrow body, £8, 2650, 180, 8
Large narrow body, £7, 5600, 220, 10
Medium wide body, £5, 4050, 406, 14
Данные, которые мне нужно использовать, — это числа справа, которым присвоено имя поля ‘first_class’, а второе справа — имя поля ‘Capacity’
, и я создал этот код
import csv
def menu():
print ("""
1.Enter airport details
2.Enter flight details
3.Enter price plan and calculate profit
4. Clear data
5.Quit
""")
if b == '2':
a1 = input('Enter the type of aircraft: ')
airplane_info = open('airplane.csv', 'r')
csvreader = csv.DictReader(airplane_info,delimiter = ',',fieldnames=('Body_type','Running_cost','Max_flight','Capacity','first_class'))
for row in csvreader:
if row['Body_type'] == a1:
print(row)
if row['Body_type'] != a1:
print('Wrong aircraft type')
flag = False
else:
d1 = input('Enter number of first class seats on the aircraft')
if d1 != 0:
(Этот флаг отправлял пользователя обратно в меню опций, игнорируя его)
Теперь мне нужно использовать тип самолета, который вводит пользователь, и использовать его имя поля first_class с количеством мест первого класса, которые вводит пользователь. Допустим, если пользователь вводит тип самолета «Средний широкий корпус». В нем 14 мест первого класса. Когда пользователю предлагается ввести места первого класса, и в итоге он вводит значение ниже 14, должно появиться сообщение об ошибке. Как бы я это сделал? Могу ли я ввести данные csv в массив, а затем использовать их для сравнения?
Ответ №1:
Вот краткий пример использования библиотеки Pandas. Вам нужно будет установить его:
pip install --user pandas
Используя pandas, вы можете преобразовать csv в объект dataframe, а затем работать с ним по своему усмотрению:
import pandas as pd
df = pd.read_csv('airplane.csv', names=["Body_type", "Running_cost", "Max_flight", "Capacity", "first_class"])
a1 = input('Enter the type of aircraft: ')
if a1 in df.Body_type.values:
body = df[df.Body_type == a1]
d1 = int(input('Enter number of first class seats on the aircraft: '))
if d1 < body["first_class"].values[0]:
print("Error")
# ...
else:
print('Wrong aircraft type')