2017-03-03 85 views
0

我希望此代碼獲得15倍的數據量。當它運行時,第一次進入所有的for循環,然後打印出答案,但是當它在「for num in range(0,15):」循環中第二次循環時,插入到「for df in page:」中,然後不會深入到其他循環中,只會返回「page_counter」,因爲它應該是200。Python嵌套for循環只運行一次,然後跳過其餘的迭代

我應該怎麼做才能讓它在每次「for num in range(0,15):」循環中運行最後的嵌套for循環?

import pandas as pd 

symbol = 0 
for num in range(symbol,1): 
    page_counter =0 
    right = 1 
    down = 0 
    for num in range(0,15): 
     page = pd.read_html('https://www.google.com/finance/historical?q=a&startdate=Jan+1%2C+2005&enddate=Mar+2%2C+2017&num=200&ei=Aom4WPizNcWO2AaSnZ3YBg'+ str(page_counter), attrs = {'class': 'gf-table'}, header=0) 

     for df in page: 
      for num in range(down,200): 
       open_data = df.at[down, 'Open'] 
       high_data = df.at[down, 'High'] 
       low_data = df.at[down, 'Low'] 
       close_data = df.at[down, 'Close'] 
       #volume_data = df.at[down, 'Volume'] 

       print(open_data) 

       down += 1 
     page_counter += 200 
     print(page_counter) 
     symbol += 1 

P.S.我知道我的代碼現在有點笨拙,這只是我的一個快速想法。

+1

您在循環的內部循環和外部循環中都使用了相同的num變量。您可能希望爲每個循環使用不同的變量名稱。 – AKS

回答

2

第一運行向下= 200,以便該環路不滿足for num in range(down,200):範圍條件後向下聲明= 0內for num in range(0,15):

import pandas as pd 

symbol = 0 
for num in range(symbol,1): 
    page_counter =0 
    right = 1 
    for num in range(0,15): 
     down = 0 
     page = pd.read_html('https://www.google.com/finance/historical?q=a&startdate=Jan+1%2C+2005&enddate=Mar+2%2C+2017&num=200&ei=Aom4WPizNcWO2AaSnZ3YBg'+ str(page_counter), attrs = {'class': 'gf-table'}, header=0) 

     for df in page: 
      for num in range(down,200): 
       open_data = df.at[down, 'Open'] 
       high_data = df.at[down, 'High'] 
       low_data = df.at[down, 'Low'] 
       close_data = df.at[down, 'Close'] 
       #volume_data = df.at[down, 'Volume'] 

       print(open_data) 

       down += 1 
     page_counter += 200 
     print(page_counter) 
     symbol += 1 
+0

我會,但是對於我的實際代碼,down = 0必須在那裏,因爲它正在寫入Excel表單中的特定單元格。所以,單元格會覆蓋。感謝 –

+0

@AlexBorland'在範圍內(向下,200):'這隻會在你的代碼中執行一次,或者你可以使用另一個變量。 – 2017-03-03 06:37:25

+0

我第一次嘗試它沒有奏效,因爲我沒有改變它們。它在那之後工作。謝謝 –