2017-05-17 7 views
0

그래서 나는 마지막 ..팬더는 여러 페이지를 to_csv

을 dataframe에 물건을 얻을 수 있지만, 프로그래밍 완전히 새로운 오전 뭔가 따라서이 루프 문제에 야해 생각하는 방법을 알아 낸 지금의 그래서 내가 야구계 데이터를 가져 오는 것입니다. http://rotoguru1.com/cgi-bin/byday.pl?game=dk

형식이 올바른지 df가 있지만 몇 가지 문제점이 있습니다. 1.) 나는 꺼내야한다고 생각하는 페이지 긁기를 위해 for 루프에 csv에 글을 남겼 는가? csv에 정보를 기록하기 전에 정보를 저장하기위한 새로운 변수를 생성합니까? 2.) 페이징은 날짜별로 진행되므로 범위 (410, 518)에서 4 월 10 일과 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'를 전달하지 않는 모드 매개 변수였습니까? 이거 정말 고마워! 이제 데이터에 SKlearn을 던질 수 있도록 일부 항목의 서식을 설정해야합니다. D –