为了账号安全,请及时绑定邮箱和手机立即绑定

使用Pandas在python中读取Excel文件

使用Pandas在python中读取Excel文件

守着一只汪 2019-11-23 11:14:10
我正在尝试以这种方式读取Excel文件:newFile = pd.ExcelFile(PATH\FileName.xlsx)ParsedData = pd.io.parsers.ExcelFile.parse(newFile)这引发了一个错误,该错误表示预期有两个参数,我不知道第二个参数是什么,而且我在这里想要实现的是将Excel文件转换为DataFrame,我这样做是否正确?或者还有其他方法可以使用熊猫吗?
查看完整描述

3 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

关闭:首先调用ExcelFile,然后调用该.parse方法并将表单名称传递给该方法。


>>> xl = pd.ExcelFile("dummydata.xlsx")

>>> xl.sheet_names

[u'Sheet1', u'Sheet2', u'Sheet3']

>>> df = xl.parse("Sheet1")

>>> df.head()

                  Tid  dummy1    dummy2    dummy3    dummy4    dummy5  \

0 2006-09-01 00:00:00       0  5.894611  0.605211  3.842871  8.265307   

1 2006-09-01 01:00:00       0  5.712107  0.605211  3.416617  8.301360   

2 2006-09-01 02:00:00       0  5.105300  0.605211  3.090865  8.335395   

3 2006-09-01 03:00:00       0  4.098209  0.605211  3.198452  8.170187   

4 2006-09-01 04:00:00       0  3.338196  0.605211  2.970015  7.765058   


     dummy6  dummy7    dummy8    dummy9  

0  0.623354       0  2.579108  2.681728  

1  0.554211       0  7.210000  3.028614  

2  0.567841       0  6.940000  3.644147  

3  0.581470       0  6.630000  4.016155  

4  0.595100       0  6.350000  3.974442  

您正在做的是调用驻留在类本身而不是实例上的方法,这是可以的(尽管不是很惯用),但是如果这样做,则还需要传递工作表名称:


>>> parsed = pd.io.parsers.ExcelFile.parse(xl, "Sheet1")

>>> parsed.columns

Index([u'Tid', u'dummy1', u'dummy2', u'dummy3', u'dummy4', u'dummy5', u'dummy6', u'dummy7', u'dummy8', u'dummy9'], dtype=object)


查看完整回答
反对 回复 2019-11-23
?
Qyouu

TA贡献1786条经验 获得超11个赞

以为我应该在这里添加,如果要访问行或列以遍历它们,可以执行以下操作:


import pandas as pd


# open the file

xlsx = pd.ExcelFile(PATH\FileName.xlsx)


# get the first sheet as an object

sheet1 = xlsx.parse(0)


# get the first column as a list you can loop through

# where the is 0 in the code below change to the row or column number you want    

column = sheet1.icol(0).real


# get the first row as a list you can loop through

row = sheet1.irow(0).real

编辑:


该方法icol(i)和irow(i)现在已弃用。您可以使用sheet1.iloc[:,i]获取第i sheet1.iloc[i,:]行和获取第i行。


查看完整回答
反对 回复 2019-11-23
  • 3 回答
  • 0 关注
  • 1946 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信