Код Python для чтения файла CSV на основе пользовательского ввода

У меня есть два отдельных файла 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

иначе: печать ('неверный ввод')'

Пожалуйста, поделитесь кодом, который вы написали, чтобы мы могли помочь вам разобраться.

Zwepp 28.05.2019 14:25

отредактировал приведенный выше вопрос с кодом из моего варианта обхода

mmccl267 28.05.2019 14:57
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
8 064
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что касается выбора 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?

mmccl267 28.05.2019 16:26

Вы можете импортировать его как массив 2d numpy через numpy.loadtxt. Вы можете найти документы для него здесь. Ваша проблема будет выглядеть так: data = numpy.loadtxt(open(filename, "rb"))

Andrew Bowling 28.05.2019 17:51

Другие вопросы по теме