У меня есть два отдельных файла CSV, которые мне нужно импортировать и читать на основе пользовательского ввода. Мы назовем два файла test1.csv и test2.csv. Пользователю будет предложено ввести, хочет ли он test1 или test2.
После ввода того, какой CSV-файл он хочет, пользователю будет предложено несколько других вопросов, чтобы выбрать, какие строки данных ему нужны. Данные моего файла CSV выглядят так:
Column A, Column B, Column C, Column D`
Row 1, 1, 2, 3
Row 2, 4, 5, 6
Если пользователь вводит строку 2, я хотел бы вернуть столбцы B, C и D в качестве результата.
Я новичок в python и не уверен, что код печатает правильные строки на основе пользовательского ввода. Я также не уверен, как выбрать, какой файл CSV будет извлечен на основе ввода.
В качестве обходного пути я записал все данные CSV в операторы if/else в коде, но предпочел бы сохранить данные в формате CSV.
'vehicle = input('Enter CSV File:')
if vehicle == 'Test2':
print ("Row Titles")
print ("1.Row 1")
print ("2.Row 2")
choice = input('Row #:')
Column B= '1'if choice == '1' else '2' if choice == '2' else
0' Столбец C = '2', если выбор == '1', иначе '5', если выбор == '2', иначе '0' Столбец D = '3', если выбор == '1', иначе '6', если выбор == '2', иначе '0'
print (column b+ column c+ column D)
Элиф автомобиль == "Test2":
повторите приведенный выше код с параметрами для файла CSV Test2
иначе: печать ('неверный ввод')'
отредактировал приведенный выше вопрос с кодом из моего варианта обхода
Что касается выбора CSV, просто сделайте это приглашением и поместите его в строку файла.
fileinput = str(input("Which file do you want?"))
if not ".csv" in fileinput:
fileinput += ".csv"
Вы захотите импортировать его как фрейм данных pandas, чтобы вы могли легко вызывать строки и столбцы.
import pandas as pd
data = pd.read_csv(fileinput)
Затем вы можете использовать iloc для возврата строки или столбца в фрейме данных.
rowcol = input("Column or row?")
if rowcol == "column":
column = int(input("Which column?"))
result = data.iloc([column])
elif rowcol == "row":
row = int(input("Which row?"))
result = data.iloc[[row]]
else:
print("Invalid response.")
print(result)
Спасибо за вашу помощь, есть ли способ сделать это без Pandas?
Вы можете импортировать его как массив 2d numpy через numpy.loadtxt. Вы можете найти документы для него здесь. Ваша проблема будет выглядеть так: data = numpy.loadtxt(open(filename, "rb"))
Пожалуйста, поделитесь кодом, который вы написали, чтобы мы могли помочь вам разобраться.