pandas:将特定的Excel单元格值读入一个variables

情况:

我使用pandas来parsing工作簿中的单独Excel( .xlsx )工作表,使用以下设置: Python 3.6.0Windows 7 x64.上的Anaconda 4.3.1 Windows 7 x64.

问题:

我一直无法find如何设置一个variables到一个特定的Excel工作表单元格值,例如var = Sheet['A3'].value 'Sheet2'使用pandas

题:

这可能吗? 如果是这样,怎么样?

我曾经尝试过:

我已经通过pandasdataframe和各种论坛上的文档进行了search,但没有find答案。

我知道我可以解决这个使用openpyxl (我可以指定一个单元格坐标),但我想:

  1. 使用pandas – 如果可能的话;
  2. 只能在文件中读取一次。

我input了numpy ,以及pandas ,所以能够写:

 xls = pd.ExcelFile(filenamewithpath) data = xls.parse('Sheet1') dateinfo2 = str(xls.parse('Sheet2', parse_cols = "A", skiprows = 2, nrows = 1, header = None)[0:1]).split('0\n0')[1].strip() 

'Sheet1'被读入'data'是好的,因为我有一个函数来收集我想要的范围。

我也试图从单独的表格( 'sheet2' )读入单元格"A3"的值,而且我目前的代码是笨重的。 它根据需要以string的forms获取值,但绝对不会。 我只想要这个单元格值和尽可能less的额外表单信息。

对@Fabab的评论进行详细说明,使用以下内容:

编辑:

更新了答案,以对应更新的问题,询问如何一次读取一些表格。 所以通过为sheet_name=None read_excel()提供sheet_name=None ,可以一次读取所有表单,并且pandas返回一个DataFrames的dict ,其中的键是Excel工作表的名称。

 import pandas as pd In [10]: df = pd.read_excel('Book1.xlsx', sheetname=None, header=None) df Out[11]: {u'Sheet1': 0 0 1 1 1, u'Sheet2': 0 0 1 1 2 2 10} In [13]: data = df["Sheet1"] secondary_data = df["Sheet2"] secondary_data.loc[2,0] Out[13]: 10 

或者,如本文所述,如果您的Excel文件有多个工作表,您可以传递工作表名称的string列表,表格名称来分析例如。

 df = pd.read_excel('Book1.xlsx', sheetname=["Sheet1", "Sheet2"], header=None) 

用于挖掘最后一个备选scheme的信息user6241235

你可以使用带有skip_footer参数的pandas read_excel。 这应该工作,skipndrows是你想要跳过的最后一行的数量。

 data = xls.read_excel(filename, 'Sheet2', parse_cols = "A", skipsrows = 2, skip_footer=skipendrows, header =None) 

感谢您的build议。

我跟着去了

 dateinfo = xls.parse('Sheet2', parse_cols = "A", skiprows = 2,nrows =1, header = None) dateinfo = str(dateinfo[0:1]).split('0\n0')[1].strip() 

这似乎现在工作,但相当繁琐