2017-05-17 111 views
0

所以截至目前,我終於想通了如何把事情到數據幀,但我完全新的節目,想的東西不應該是在這個循環中,因此這個問題..熊貓to_csv多頁

所以我我試圖做的是拉動棒球數據http://rotoguru1.com/cgi-bin/byday.pl?game=dk

格式是正確的DF,但我有幾個問題。 1.)我在for循環中寫入了csv,用於抓取頁面,我認爲我必須將其取出。在寫入csv之前,我只是創建一個新變量來存儲信息? 2.)分頁按日期過去,所以我剛剛爲我在範圍內(410,518)試圖獲得4月10日至5月17日之間的所有日期。但顯然它只是增加了過去第30天,直到99所以我沒有看到這些數據。

不管這裏是我到目前爲止的代碼...我是一個新手,所以要把它放在我容易:P

for i in range(410, 518): 
    r = requests.get("http://rotoguru1.com/cgi-bin/byday.pl?date={}&game=dk".format(i)) 

    soup = bs.BeautifulSoup(r.content,"lxml") 
    table = soup.find_all('tr')[9] 
    headers = [th.getText().replace('\xa0', '') for th in table] 
    headers.insert(0,'Position') 

    data_rows = soup.find_all('tr')[10:430] 
    player_data = [[td.getText().replace('\xa0', '') for td in data_rows[i].find_all('td')] for i in range(len(data_rows))] 

    df = pd.DataFrame(player_data, columns=headers) 
    df.to_csv("testingbaseball.csv") 

回答

0

這是你想要的嗎?

import os 
path = 'testingbaseball.csv' 
if not os.path.exists(path): 
    df.to_csv('testingbaseball.csv') 
else: 
    df.to_csv('testingbaseball.csv', mode='a', header=False) 

這樣你就可以繼續添加新的數據到你的csv數據文件。

+0

太棒了!我知道這是簡單的...而且它實際上只是模式參數,我沒有通過'a'來追加im假設?非常感謝你做的這些!現在只需要格式化一些東西,以便我可以將SKlearn放在數據上:D –