有沒有辦法將我網頁上的數據轉換成熊貓DataFrame?將數據轉換爲熊貓數據幀
刮掉的數據是股票基本面數據例如。 abt: 2.71 6.00
ABT =股票行情,2.71 =價格以預訂比和6.00 = PEG比率
我試圖聲明變量具有空數據幀,並用於.append()
功能,但沒有運氣
即時猜測的數據之前,必須以某種方式轉換它可以傳遞給一個數據框,但我現在知道如何去做。
代碼重做與評論的建議,現在數據框出來了空???
import time
import urllib.request
import urllib.parse
import pandas as pd
sp500short = ['a', 'aa', 'aapl', 'abbv', 'abc', 'abt', 'ace', 'aci', 'acn', 'act', 'adbe', 'adi', 'adm', 'adp']
#stock = 'a'
data = []
color_list = ['<span style="color:#aa0000;">', '<span style="color:#008800;">']
color_close = '</span>'
def finvizPBStats(stock):
try:
sourceCode = urllib.request.urlopen('http://finviz.com/quote.ashx?t='+stock).read()
sourceCodeString = sourceCode.decode()
pbr = sourceCodeString.split('P/B</td><td width="8%" class="snapshot-td2" align="left"><b>')[1].split('</b></td>')[0]
for color in color_list:
if color in pbr:
pbr = pbr.split(color)[1].split(color_close)[0]
pbr = float(pbr)
except Exception as e:
if Exception:
pass
return
def finvizPEGStats(stock):
try:
sourceCode = urllib.request.urlopen('http://finviz.com/quote.ashx?t='+stock).read()
sourceCodeString = sourceCode.decode()
PEG = sourceCodeString.split('PEG</td><td width="8%" class="snapshot-td2" align="left"><b>')[1].split('</b></td>')[0]
for color in color_list:
if color in PEG:
PEG = PEG.split(color)[1].split(color_close)[0]
PEG = float(PEG)
except Exception as e:
if Exception:
pass
return
for stock in sp500short:
pbr = finvizPBStats(stock)
PEG = finvizPEGStats(stock)
data.append([pbr, PEG])
df = pd.DataFrame(index=sp500short, columns=['pbr', 'PEG'])
print(df)
什麼樣的數據結構保存您的原始數據?如果它兼容,就可以像'df(input_data)'一樣簡單。 –
你沒有回報任何東西。這樣做:'返回pbr,PEG'。另外,在你的函數結構上,這可能會引發錯誤,除非你初始化pbr和PEG。例如,你可以嘗試在try/except語句之前的函數中添加'pbr,PEG = 0,0'。 – AlexG