使用pd.read_pickle读取.xlsx文件报错,寻求解决方法
解决使用
pd.read_pickle()读取.xlsx文件时的报错问题 嘿,这个问题我之前也踩过坑!你现在遇到的错误根源很简单——用错了文件读取方法。
为什么会报错?
pd.read_pickle()这个函数是专门用来读取pickle序列化格式的文件(通常后缀是.pkl,或者没有后缀的pickle文件),但你传入的路径是一个.xlsx格式的Excel表格。Python会尝试把Excel文件当成pickle数据去反序列化,这完全不匹配,所以才会抛出那个关于persistent_load function的错误。
快速解决办法
直接把读取方法换成pandas专门处理Excel文件的pd.read_excel()就行,修正后的代码如下:
import pandas as pd import pickle import numpy as np import nltk from nltk import word_tokenize from nltk.corpus import stopwords %matplotlib inline import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [18.0, 8.0] import re import string # 替换成read_excel读取Excel文件 leyes = pd.read_excel('C:\\Users\\diese\\OneDrive\\Documentos\\GitHub\\MCPP_diego_ramirez\\Proyectof\\leyes.xlsx')
额外提示
如果你的Excel文件里有多个工作表,还可以通过sheet_name参数指定要读取的表:
# 读取第一个工作表(索引从0开始) leyes = pd.read_excel('你的文件路径', sheet_name=0) # 或者直接指定工作表名称 leyes = pd.read_excel('你的文件路径', sheet_name='Sheet1')
要是你之前确实是把DataFrame保存成了pickle文件,但不小心把后缀改成了.xlsx,那记得把文件改回.pkl后缀,再用pd.read_pickle()读取就可以了。不过从你的代码场景来看,应该就是想直接读取Excel文件,用上面的方法就能解决问题啦。
内容的提问来源于stack exchange,提问作者Sebastián Ramírez
相关产品推荐
相关产品推荐

