pandas:将特定的Excel单元格值读入一个variables
情况:
我使用pandas
来parsing工作簿中的单独Excel( .xlsx
)工作表,使用以下设置: Python 3.6.0
和Windows 7 x64.
上的Anaconda 4.3.1
Windows 7 x64.
问题:
我一直无法find如何设置一个variables到一个特定的Excel工作表单元格值,例如var = Sheet['A3'].value
'Sheet2'
使用pandas
?
题:
这可能吗? 如果是这样,怎么样?
我曾经尝试过:
我已经通过pandas
在dataframe
和各种论坛上的文档进行了search,但没有find答案。
我知道我可以解决这个使用openpyxl
(我可以指定一个单元格坐标),但我想:
- 使用
pandas
– 如果可能的话; - 只能在文件中读取一次。
我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()
这似乎现在工作,但相当繁琐