【问题标题】:How to open a .csv file after user input, using pandas?如何在用户输入后使用熊猫打开 .csv 文件?
【发布时间】:2021-01-13 11:33:24
【问题描述】:

我对 Python 很陌生,这将是一个非常基本的问题。 我希望用户输入 csv 文件的名称,我想用 pandas 打开该文件以轻松访问其行和列。 这是我写的代码:

import pandas as pd 
DATAFIN = str(raw_input("Name of your data file"))
dataset = pd.read_csv(DATAFIN)
dataset.head()

但是,我似乎犯了某种错误,因为这是我收到的信息(对不起,太长了):

Traceback (most recent call last):
  File "c:\Users\File.py", line 34, in <module>
    dataset = pd.read_csv(DATAFIN)
  File "C:\Python27\lib\site-packages\pandas\io\parsers.py", line 702, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "C:\Python27\lib\site-packages\pandas\io\parsers.py", line 429, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "C:\Python27\lib\site-packages\pandas\io\parsers.py", line 895, in __init__
    self._make_engine(self.engine)
  File "C:\Python27\lib\site-packages\pandas\io\parsers.py", line 1122, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "C:\Python27\lib\site-packages\pandas\io\parsers.py", line 1853, in __init__
    self._reader = parsers.TextReader(src, **kwds)
  File "pandas\_libs\parsers.pyx", line 387, in pandas._libs.parsers.TextReader.__cinit__
  File "pandas\_libs\parsers.pyx", line 705, in pandas._libs.parsers.TextReader._setup_parser_source
 does not exist: ' maindata.csv\r'csv

您知道问题出在哪里吗? 对于格式中的任何错误,我深表歉意。

【问题讨论】:

  • 您的代码似乎正确。文件在正确的目录中吗?
  • @r.b.leon 我相信是的!
  • 你试过 dataset = pd.read_csv("nameofthefile.csv") 吗?有效吗?
  • @r.b.leon 是的,它就是这样工作的。
  • 很奇怪。你能上传一张正在工作的截图和你手动输入文件名的截图吗?

标签: python pandas python-2.7


【解决方案1】:

看起来您在字符串中使用了空格字符

' maindata.csv\r'

尝试输入您的 csv 名称,不带空格

看起来像

Name of your data filemaindata.csv

【讨论】:

  • 我刚试过,但看起来错误是一样的。当我运行我的程序时出现的是:Name of your data file 而我写的是Name of your data filemaindata.csv,这是否正常?它看起来很奇怪,也许这是我的错误,但我不明白如何插入文件名
【解决方案2】:

尝试使用pd.read_csv(r'address of the file.csv') 读取您的 csv 文件

【讨论】:

  • 这意味着我的用户每次都必须插入file.csv的地址,而不仅仅是文件名?
【解决方案3】:

使用 argparse 从命令行获取文件名。 通过python script.py --filename file.csv 运行您的脚本 并使用打印查看结果

import pandas as pd 
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--filename')
args = parser.parse_args()
dataset = pd.read_csv(args.filename)
print(dataset.head())

【讨论】:

  • 嘿,谢谢!对不起,但我不确定我是否理解正确。我应该只写你的代码而不是我的,但是我的文件名是你写的'--filename'
  • --filename 是您为脚本定义并从命令行获取的参数。你应该用你的文件名替换 file.csv。
猜你喜欢
  • 1970-01-01
  • 2018-07-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
  • 1970-01-01
  • 2023-03-11
  • 2019-10-10
  • 2020-05-02
相关资源
最近更新 更多