여러 Excel 워크시트에서 데이터를 자동으로 불러오고 결합하기
이제 for 루프를 사용해 Excel 파일 listings.xlsx에 있는 세 거래소의 상장 정보 가져오기를 자동화할 준비가 되었습니다. 다음과 같이 진행해 볼게요:
pd.ExcelFile()객체의sheet_names속성을 사용해 시트 이름을 가져옵니다.- 빈 리스트를 만듭니다.
- 이 시트 이름들을 순회하는 for 루프를 작성해, Excel 파일에서 해당 시트 이름의 데이터를 변수로 읽어들입니다. 필요하다면 참조용 열을 추가하세요. 각 반복에서 이 변수의 내용을 리스트에 추가합니다.
- 리스트에 담긴 DataFrame들을 연결(concatenate)합니다.
필요하면 이 장의 이전 연습 문제나 pandas 문서를 참고하세요. pandas는 pd로 임포트되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 금융 데이터 가져오기와 관리
연습 안내
- 파일
listings.xlsx로pd.ExcelFile()객체를 생성하고 변수xls에 할당하세요. xls의.sheet_names속성에서 시트 이름을 가져와exchanges에 할당하세요.- 빈 리스트를 만들어 변수
listings에 할당하세요. - for 루프에서 반복자 변수로
exchange를 사용해exchanges를 순회하세요. 각 반복에서:- 누락값 처리를 위해 데이터 소스로
xls,sheet_name인수로exchange,na_values로'n/a'를 사용해pd.read_excel()을 호출하세요. 결과를listing에 할당하세요. listing에'Exchange'라는 새 열을 만들고 값으로exchange(반복자 변수)를 설정하세요.- 만들어진
listingDataFrame을listings에 추가(append)하세요.
- 누락값 처리를 위해 데이터 소스로
pd.concat()으로listings의 내용을 연결하여listing_data에 할당하세요..info()를 사용해listing_data의 내용을 확인하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create the pd.ExcelFile() object
xls = ____
# Extract the sheet names from xls
exchanges = ____.____
# Create an empty list: listings
# Import the data
for exchange in exchanges:
listing = pd.____(____, sheet_name=____, na_values='n/a')
listing['Exchange'] = ____
listings.____(____)
# Concatenate the listings: listing_data
listing_data = pd.____(____)
# Inspect the results
listing_data.info()