2017-04-21 79 views
1

情況:熊貓:讀取特定的Excel單元格的值代入變量

我使用pandas在單獨的Excel來解析(.xlsx)從與下面的設置工作簿片:Python 3.6.0Anaconda 4.3.1Windows 7 x64.

問題:

我一直無法找到如何設置一個變量到一個特定的Excel工作表單元格值例如var = Sheet['A3'].value'Sheet2'使用pandas

問:

這可能嗎?如果是這樣,怎麼樣?

我曾嘗試:

我已經通過pandas文檔搜查dataframe和各種論壇,但還沒有找到答案。

我知道我可以解決這個使用openpyxl(在那裏我可以指定單元格座標),但我想:

  1. 要使用pandas - 如果可能的;
  2. 只能在文件中讀取一次。

我有進口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"中的值,而且我目前的代碼很笨拙。它根據需要將值作爲字符串取出,但絕不會太漂亮。我只想要這個單元格的值和儘可能少的額外表單信息。

+1

顯然一個解決辦法是將讀出的整列,並將其分配給一個變量。然後只提取第三個條目。除非你有一個龐大的數據集,否則這可能是最簡單的方法 – FLab

回答

1

在闡述@鬆弛的評論使用的東西沿着這些線路:

編輯:

更新了答案,以對應於更新的問題,詢問如何在一次看了一些片。 因此,通過提供sheet_name=Noneread_excel(),您可以一次讀取所有工作表,而pandas返回DataFrame的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 

另外,如this post提到的,如果您的Excel文件有幾張你可以通過sheetname字符串列表,表名稱解析如。

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

貸記user6241235挖出的最後的替代

0

您可以使用帶有skip_footer參數的pandas read_excel。 這應該工作,skipndrows是你想跳過的最後一行的數量。

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