我正在使用 Twint 創建一個包含十個結果的 .csv 檔案。但是每當我嘗試將其加載到 Pandas 資料幀中時,都會出現錯誤。有人可以幫助我了解發生了什么嗎?
Traceback (most recent call last):
File "k:\Documents\Visual Studio Code\Twitter Project\exploratory stage.py", line 4, in <module>
scrapedData = pd.read_csv('demo.csv')
File "K:\Programs\Python\lib\site-packages\pandas\util\_decorators.py", line 311, in wrapper
return func(*args, **kwargs)
File "K:\Programs\Python\lib\site-packages\pandas\io\parsers\readers.py", line 586, in
read_csv
return _read(filepath_or_buffer, kwds)
File "K:\Programs\Python\lib\site-packages\pandas\io\parsers\readers.py", line 488, in
_read
return parser.read(nrows)
File "K:\Programs\Python\lib\site-packages\pandas\io\parsers\readers.py", line 1047, in read
index, columns, col_dict = self._engine.read(nrows)
File "K:\Programs\Python\lib\site-packages\pandas\io\parsers\c_parser_wrapper.py", line 223, in read
chunks = self._reader.read_low_memory(nrows)
File "pandas\_libs\parsers.pyx", line 801, in pandas._libs.parsers.TextReader.read_low_memory
File "pandas\_libs\parsers.pyx", line 857, in pandas._libs.parsers.TextReader._read_rows
File "pandas\_libs\parsers.pyx", line 843, in pandas._libs.parsers.TextReader._tokenize_rows
File "pandas\_libs\parsers.pyx", line 1925, in pandas._libs.parsers.raise_parser_error
pandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 3, saw 3
-編輯-
我查看了我的 csv 檔案并意識到資料的格式很奇怪。包括用戶名、日期時間和推文在內的一整行資訊都將被壓縮到一個單元格中。
對于其他幾行,推文會中斷并在它旁邊的單元格中繼續。它看起來像這樣。

uj5u.com熱心網友回復:
每當您提出pandas問題時,如果可能,您應該始終提供幾行資料,以便人們可以更有效地幫助您。
該錯誤指出您的第三行包含 3 個欄位,而它只需要 1 個。
如果您的 CSV 格式不正確,就會發生這種情況。在您的情況下,解決方案是修復格式或嘗試設定error_bad_lines=False.
這個例子拋出同樣的錯誤:
from io import StringIO
import pandas as pd
data = """name
brad
susi,tina,ellen
peter
"""
pd.read_csv(StringIO(data))
輸出:
ParserError: Error tokenizing data. C error: Expected 1 fields in line 3, saw 3
解決方案
修復 CSV 檔案或嘗試設定error_bad_lines=False會跳過錯誤行
df = pd.read_csv(StringIO(data), error_bad_lines=False)
print(df)
輸出:
注意缺少的行
susi,tina,ellen
name
0 brad
1 peter
exec(code_obj, self.user_global_ns, self.user_ns)
b'Skipping line 3: expected 1 fields, saw 3\n'
uj5u.com熱心網友回復:
當 csv 被另一個程式或應用程式占用時,作業系統可能會“鎖定”檔案,直到操作完成。
確保您創建了一個 .csv,您告訴作業系統克隆/結束操作
這是打開/關閉檔案的示例:
f.open(test.csv, "w")
f.write("test")
f.close()
沒有 f.close 檔案被作業系統“鎖定”,不能被另一個程式/行程訪問
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/321815.html
上一篇:熊貓通過分隔符將單元格拆分為新行
