2013-03-23 5 views
10

एक यूआरएल लिंक पढ़ने के विभिन्न तरीकों को देखने के बाद, एक .xls फ़ाइल को इंगित करने के बाद, मैंने xlrd का उपयोग करने के साथ जाने का फैसला किया।एक यूआरएल से एक्सेल वर्कबुक की चादरें 'पांडास। डेटाफ्रेम'

import pandas 
import xlrd 
import urllib2 

link ='http://www.econ.yale.edu/~shiller/data/chapt26.xls' 
socket = urllib2.urlopen(link) 

#this line gets me the excel workbook 
xlfile = xlrd.open_workbook(file_contents = socket.read()) 

#storing the sheets 
sheets = xlfile.sheets() 

मैं पिछले चादर तक के लिए करना चाहते हैं:

मैं एक कठिन समय मैं निम्नलिखित है एक 'pandas.DataFrame'

के लिए एक 'xlrd.book.Book' प्रकार परिवर्तित हो रहा है sheets और pandas.DataFrame के रूप में आयात करें, इस विचार के बारे में कोई विचार है कि मैं इसे कैसे पूरा कर सकता हूं? मैंने कोशिश की है, pandas.ExcelFile.parse() लेकिन यह एक्सेल फ़ाइल का पथ चाहता है। मैं निश्चित रूप से फ़ाइल को स्मृति में सहेज सकता हूं और फिर पार्स (tempfile या कुछ का उपयोग कर) का उपयोग कर सकता हूं, लेकिन मैं पाइथोनिक दिशानिर्देशों का पालन करने और कार्यक्षमता संभावित पहले से ही पांडा में लिखा गया है।

किसी भी मार्गदर्शन की हमेशा सराहना की जाती है।

उत्तर

23

आप पास कर सकते हैं अपने socketExcelFile रहे हैं:

>>> import pandas as pd 
>>> import urllib2 
>>> link = 'http://www.econ.yale.edu/~shiller/data/chapt26.xls' 
>>> socket = urllib2.urlopen(link) 
>>> xd = pd.ExcelFile(socket) 
NOTE *** Ignoring non-worksheet data named u'PDVPlot' (type 0x02 = Chart) 
NOTE *** Ignoring non-worksheet data named u'ConsumptionPlot' (type 0x02 = Chart) 
>>> xd.sheet_names 
[u'Data', u'Consumption', u'Calculations'] 
>>> df = xd.parse(xd.sheet_names[-1], header=None) 
>>> df 
            0 1 2 3   4 
0  Average Real Interest Rate: NaN NaN NaN 1.028826 
1 Geometric Average Stock Return: NaN NaN NaN 0.065533 
2    exp(geo. Avg. return) NaN NaN NaN 0.067728 
3 Geometric Average Dividend Growth NaN NaN NaN 0.012025 
+1

बिल्कुल सही, धन्यवाद स्पष्ट और शीघ्र उत्तर के लिए इतना। – benjaminmgross

0

आप pandas.read_excel() के लिए एक URL पारित कर सकते हैं:

import pandas as pd 

link ='http://www.econ.yale.edu/~shiller/data/chapt26.xls' 
data = pd.read_excel(link,'sheetname') 
संबंधित मुद्दे