首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python没有导入.csv。错误: pandas.errors.EmptyDataError:没有要从文件中解析的列

Python没有导入.csv。错误: pandas.errors.EmptyDataError:没有要从文件中解析的列
EN

Stack Overflow用户
提问于 2022-07-15 19:38:57
回答 1查看 127关注 0票数 0

我正在将信息写入两个.csv文件(2列,用逗号分隔)。我已经用time.sleep()确保了我的桌面有足够的时间在熊猫尝试将信息加载到dataframe之前将所有数据写入文件。这个问题似乎仍然存在于archorg.csv,因为我试图逆转导入文件的顺序,pacman.csv没有给出一个错误,但是archorg.csv仍然提供了错误。

代码语言:javascript
运行
复制
    onlinedf = pd.read_csv('/home/kia/Code/update/data/archorg.csv')
    pacmandf = pd.read_csv('/home/kia/Code/update/data/pacman.csv')

当我尝试运行这个程序时,我会得到以下错误:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "/home/kia/Code/update/main.py", line 28, in <module>
    ugh = main()
  File "/home/kia/Code/update/main.py", line 20, in __init__
    filemgr.loadfiles()
  File "/home/kia/Code/update/files.py", line 10, in loadfiles
    onlinedf = pd.read_csv('/home/kia/Code/update/data/archorg.csv')
  File "/usr/lib/python3.10/site-packages/pandas/util/_decorators.py", line 311, in wrapper
    return func(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/pandas/io/parsers/readers.py", line 680, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "/usr/lib/python3.10/site-packages/pandas/io/parsers/readers.py", line 575, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "/usr/lib/python3.10/site-packages/pandas/io/parsers/readers.py", line 934, in __init__
    self._engine = self._make_engine(f, self.engine)
  File "/usr/lib/python3.10/site-packages/pandas/io/parsers/readers.py", line 1236, in _make_engine
    return mapping[engine](f, **self.options)
  File "/usr/lib/python3.10/site-packages/pandas/io/parsers/c_parser_wrapper.py", line 75, in __init__
    self._reader = parsers.TextReader(src, **kwds)
  File "pandas/_libs/parsers.pyx", line 551, in pandas._libs.parsers.TextReader.__cinit__
pandas.errors.EmptyDataError: No columns to parse from file

最后,我去了解释器,逐行输入了以下内容:

代码语言:javascript
运行
复制
>>> import pandas as pd
>>> pd.read_csv('/home/kia/Code/update/data/archorg.csv')
                  package     version
0          python-dulwich   0.20.45-1
1              sqlite-tcl    3.39.1-1
2              sqlite-doc    3.39.1-1
3         sqlite-analyzer    3.39.1-1
4                  sqlite    3.39.1-1
..                    ...         ...
223     python-voluptuous    0.13.1-1
224     python-tldextract     3.3.1-1
225    perl-file-mimeinfo      0.33-1
226  perl-crypt-passwdmd5      1.42-1
227      perl-test-simple  1.302191-1

[228 rows x 2 columns]

这似乎可以毫无问题地完成这项工作。我还在下面发布了一部分csv文件,以防出现问题,尽管我已经检查了它是否有额外的逗号/空格/等等。

代码语言:javascript
运行
复制
package,version
python-dulwich,0.20.45-1
sqlite-tcl,3.39.1-1
sqlite-doc,3.39.1-1
sqlite-analyzer,3.39.1-1
sqlite,3.39.1-1
lemon,3.39.1-1
tp_smapi-lts,0.43-254
r8168-lts,8.050.03-9
acpi_call-lts,1.2.2-58
nvidia-lts,1:515.57-6
linux-lts-headers,5.15.55-1
linux-lts-docs,5.15.55-1
linux-lts,5.15.55-1
mattermost,7.1.1-1
node-gyp,9.1.0-1
trivy,0.30.0-1
sile,0.13.3-1

编辑:为全面审查而添加的存储库

编辑2:让它使用sep=而不是delim_whitespace工作,然后用csv模块写入文件,而不是串连字符串,以消除csv格式错误的可能性。所有文件显示在回购,以供参考。

EN

回答 1

Stack Overflow用户

发布于 2022-07-15 20:11:49

你的csv样本对我来说很好,令人费解的是你的另一个文件工作得很好。我建议你试一试,我希望它能奏效

代码语言:javascript
运行
复制
import pandas as pd
df = pd.read_csv("filepath", delim_whitespace=True)
df[['Package', 'Version']] = df['package,version'].str.split(',', expand=True)
df.drop(columns = "package,version", inplace=True)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72998901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档