簡體   English   中英

已解決 - Python Pandas 不導入 .csv。 錯誤:pandas.errors.EmptyDataError:沒有要從文件中解析的列

[英]SOLVED - Python Pandas not importing .csv. Error: pandas.errors.EmptyDataError: No columns to parse from file

我正在將信息寫入 2 個 .csv 文件(2 列,以逗號分隔)。 我已經使用 time.sleep() 確保我的桌面有足夠的時間在 pandas 嘗試將信息加載到數據幀之前將所有數據寫入文件。 似乎問題仍然存在於archorg.csv,因為我嘗試顛倒導入文件的順序並且pacman.csv 沒有給出錯誤,但archorg.csv 仍然存在。

    onlinedf = pd.read_csv('/home/kia/Code/update/data/archorg.csv')
    pacmandf = pd.read_csv('/home/kia/Code/update/data/pacman.csv')

當我嘗試運行它時,我收到以下錯誤:

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

最后,我去解釋器,逐行輸入以下內容:

>>> 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 文件的一部分,以防出現問題,盡管我已經檢查了它是否有額外的逗號/空格/等。

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 格式錯誤的可能性。 存儲庫中顯示的所有文件以供參考。

您的 csv 樣本對我來說效果很好,令人費解的是您的其他文件效果很好。 我建議您嘗試解決方法,我希望它有效

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM