我在阅读csv文件时遇到一些麻烦
import pandas as pd
df = pd.read_csv('Data_Matches_tekha.csv', skiprows=2)
我得到了
pandas.io.common.CParserError:标记数据时出错。 C错误:第526行预计有1个字段,见5
当我将sep=None
添加到df
时,我收到了另一个错误
错误:行包含NULL字节
我尝试添加unicode='utf-8'
,我甚至尝试过使用CSV阅读器,但此文件无法正常使用
csv文件完全正常,我查了一下,我发现它没有错误
以下是我得到的错误:
答案 0 :(得分:1)
在您的实际代码中,该行是:
>>> pandas.read_csv("Data_Matches_tekha.xlsx", sep=None)
您正在尝试阅读Excel文件,而不是纯文本CSV,这就是事情无效的原因。
Excel文件(xlsx)采用特殊的二进制格式,无法读取为简单的文本文件(如CSV文件)。
您需要将Excel文件转换为CSV文件(注意 - 如果您有多个工作表,每个工作表应转换为自己的csv文件),然后阅读这些文件。
您可以使用read_excel
,也可以使用xlrd
这样的库来读取Excel文件的二进制格式;有关详细信息,请参阅Reading/parsing Excel (xls) files with Python。
答案 1 :(得分:1)
如果read_csv
文件:
read_excel
代替Excel
import pandas as pd
df = pd.read_excel("Data_Matches_tekha.xlsx")
答案 2 :(得分:0)
当我使用to_csv写一些数据然后在另一个脚本中读取它时,我遇到了同样的错误。我发现了一个简单的解决方案而没有通过pandas的读取功能,它是一个名为 Pickle 的包。
您可以在终端输入
下载pip install pickle
然后您可以用来编写数据(第一个)下面的代码
import pickle
with open(path, 'wb') as output:
pickle.dump(variable_to_save, output)
最后使用
在另一个脚本中导入数据import pickle
with open(path, 'rb') as input:
data = pickle.load(input)
请注意,如果您想在读取保存的数据时使用与保存数据的版本不同的python版本,则可以在写入步骤中使用protocol=x
使用x对应于旨在用于阅读的版本(2或3)。
我希望这可以有用。