【问题标题】:Python code to read CSV file based on user input基于用户输入读取 CSV 文件的 Python 代码
【发布时间】:2019-05-28 12:23:24
【问题描述】:

我有两个单独的 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' 如果选择 == '1' 则 C 列 = '2' 如果选择 == '2' 则为 '5' 否则为 '0' 列 D= '3' 如果选择 == '1' 否则 '6' 如果选择 == '2' 否则 '0'

        print (column b+ column c+ column D)

elif 车辆 == "Test2":

使用 CSV Test2 文件的选项重复上述代码

else: print ('无效输入')'

【问题讨论】:

  • 请分享您编写的代码,以便我们帮助您摆脱困境。
  • 使用我的变通选项中的代码编辑了上述问题

标签: python python-3.x csv


【解决方案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 的情况下做到这一点?
  • 您可以通过 numpy.loadtxt 将其作为二维 numpy 数组导入。 You can find the docs for it here。您的问题将如下所示: data = numpy.loadtxt(open(filename, "rb"))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-04
相关资源
最近更新 更多