使用Pandas在python中读取Excel文件。

问题描述 投票:0回答:1

我试图以这种方式读取一个Excel文件,但却出现了一个错误,说有两个参数,我不知道第二个参数是什么,而且我试图在这里实现的是将一个Excel文件转换为一个DataFrame,我这样做是否正确?

newFile = pd.ExcelFile(PATH\FileName.xlsx)
ParsedData = pd.io.parsers.ExcelFile.parse(newFile)

我不知道第二个参数是什么,也不知道我想在这里实现的是将一个Excel文件转换为一个DataFrame,我这样做是正确的吗? 或者有什么其他的方法来使用pandas来做这件事?

python excel pandas
1个回答
221
投票

关闭:先给你打电话 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)

95
投票

这是个简单易行的方法。

import pandas
df = pandas.read_excel(open('your_xls_xlsx_filename','rb'), sheetname='Sheet 1')
# or using sheet index starting 0
df = pandas.read_excel(open('your_xls_xlsx_filename','rb'), sheetname=2)

查看文档完整的细节http:/pandas.pydata.orgpandas-docsversion0.17.1generatedpandas.read_excel.html。

未来预警。The sheetname 新版Pandas的关键字已不适用,请使用 sheet_name 来代替。


20
投票

我想我应该在这里补充一下,如果你想访问行或列来循环它们,你可以这样做。

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-th col和 sheet1.iloc[i,:] 得到第i-th行。


13
投票

我想这应该能满足你的需求。

import pandas as pd

# Read the excel sheet to pandas dataframe
DataFrame = pd.read_excel("PATH\FileName.xlsx", sheetname=0)

0
投票

你只需要把你的文件的路径输入到 pd.read_excel

import pandas as pd

file_path = "./my_excel.xlsx"
data_frame = pd.read_excel(file_path)

结账 文件 探讨参数,如 skiprows 加载excel文件时忽略行。


0
投票
import pandas as pd

data = pd.read_excel (r'**YourPath**.xlsx')

print (data)

0
投票

这是一个更新的方法,其语法在python代码中比较常见。它还可以防止你多次打开同一个文件。

import pandas as pd

sheet1, sheet2 = None, None
with pd.ExcelFile("PATH\FileName.xlsx") as reader:
    sheet1 = pd.read_excel(reader, sheet_name='Sheet1')
    sheet2 = pd.read_excel(reader, sheet_name='Sheet2')

https:/pandas.pydata.orgpandas-docsstablereferenceapipandas.read_excel.html。

© www.soinside.com 2019 - 2024. All rights reserved.