我的Pandas在从.xlsx文件中读取值时出现错误。
我的Pandas在从.xlsx文件中读取值时出现错误。
我试图将一个.xlsx文件读入到一个数据框中。
在Excel中打开的.xlsx文件如下所示:
标题1 | 标题2 | 标题3 |
---|---|---|
苏打 | 12 | 4 |
汽水 | 12 | 2 |
可乐 | 12 | 3 |
但是,我使用以下代码读取的数据框:
df = pd.read_excel("fileName.xlsx", engine='openpyxl')
结果如下所示:
标题1 | 标题2 | 标题3 |
---|---|---|
苏打 | 0 | 4 |
汽水 | 0 | 2 |
可乐 | 0 | 3 |
有人知道为什么第二个标题中的所有值都被替换为0吗?或者有没有什么方法可以解决这个问题?我不确定,因为标准的read_csv不再支持.xlsx文件,所以我一直在使用Openpyxl版本。提前感谢!
编辑:所以xlrd也不再支持.xlsx文件(只支持.xls文件),所以我安装了一个较旧版本的xlrd,但是使用较旧版本的xlrd和使用当前版本的openpyxl得到的结果与上述相同。仍在寻求帮助...
另外,我想说的是read_csv的地方应该是read_excel。
Pandas在读取.xlsx文件时出现了值错误的问题,我遇到了类似的问题,并通过使用"converters"参数来指定列的数据类型来解决了这个问题。你可以尝试以下方法:
df = pd.read_excel("fileName.xlsx", engine='openpyxl', converters ={'Heading 2':int})
或者
df = pd.read_excel("fileName.xlsx", engine='openpyxl', converters ={'Heading 2':str})
通过指定"converters"参数,并使用字典来指定需要转换的列和对应的数据类型,可以解决Pandas在读取.xlsx文件时出现的值错误问题。其中"Heading 2"是需要转换的列名,可以根据实际情况进行修改。
问题原因:Pandas库中的read_excel函数在读取.xlsx文件时出现错误。
解决方法:使用旧版本的xlrd库来读取.xlsx文件,但这可能会存在安全漏洞。
文章内容如下:
最近,在使用Pandas库的read_excel函数读取.xlsx文件时,遇到了一些问题。根据我的理解,read_csv函数不支持.xlsx文件,但read_excel函数应该支持。然而,在最新版本的xlrd库中,只有openpyxl引擎支持.xlsx文件,而之前的标准引擎xlrd不再支持。
如果你运行的是xlrd版本1.2.0或更旧的版本,为了避免使用openpyxl引擎,可以尝试使用以下代码来读取.xlsx文件:
df = pd.read_excel("fileName.xlsx")
然而,使用旧版本的xlrd库可能会存在安全漏洞,这也是为什么.xlsx支持在最初被停止的原因。
xlrd库的作者在一个的问题中给出了更详细的解释。当我尝试使用旧版本的xlrd库时,遇到了错误信息:xlrd.biffh.XLRDError: Excel xlsx file; not supported。
非常抱歉,你是正确的,实际上xlrd不再支持.xlsx文件,因为存在安全问题。也许这个帖子可以帮助你解决问题。
通过使用xlrd库的旧版本,我们可以解决Pandas库read_excel函数读取.xlsx文件时的错误。然而,我们需要注意使用旧版本可能带来的安全漏洞。