pandas踩坑日记之pd.ExcelFile和pd.read_excel

写脚本,报错很正常,但总报些无厘头的错就让人很郁闷。上午大概花了三小时的时间做了个分类问题,但居然一半以上的时间都花在读取excel文件这一步了!我。。。
下面就来看看究竟是何方妖孽:
问题简述:读取一个.xls文件,通过关键字取出该文件的某一列数据。(用过pandas的同学大概都会觉得这个功能干起来和听起来一样简单,那究竟报了什么错呢?)
一开始,我是这样干的:

path1 = "D:\\数据分析\XXX.xlsx"
data= pd.ExcelFile(path1)
df = data.parse(sheet_name="表1",header=None)
print(df["某个索引"])

刚刚想查一下这个.parse() 的说明,但居然只能查到这个放在在java的用法。啊啊啊,天知道我当时为啥就搜到了这个用法。反正,这玩意返回的内容都是data型的(这方法底层可能是由java实现的),导致最后一行用索引提数据的时候一直出现KeyError的报错。(该方法的官方解释在这里:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.ExcelFile.parse.html)

当时用这个方法是因为目标文件中包含了多个表,但我不知道pd.read_excel()可以指定表读入。。。官方解释在这里:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html?highlight=read_excel#pandas.read_excel
后来发现,pd.read_excel()读出来的东西也是data型的,要用np.array()转换一下才能做数组的相关操作,否则总是报很奇怪的错误。(更奇怪的是在debag模式下这就是ndarry…, 这个报错真的解决了贼久!)
后来,把代码改成这样就好啦!

path1 = "D:\\数据分析\XXX.xlsx"
df = pd.read_excel(path1, sheetname = "表1")
print(df["某个索引"])

究其原因还是pd.ExcelFile()和pd.read_csv()的不同造成的,但我没有在这里深究,还请知道的同学不吝赐教。这里有个博客简述了它俩的区别:
https://mingju.net/2020/05/pd.read_excel_and_pd.ExcelFile/

如有错误,还请指出!

你可能感兴趣的:(报错,pandas)