Pandas를 사용하여 데이터프레임을 Excel 파일로 읽고 쓰는 방법에 대해 상세히 설명하겠습니다.
데이터프레임을 엑셀로 저장하는 경우 to_excel()
메서드를 사용하고, Excel 파일을 읽어서 데이터프레임으로 변환하는 경우 read_excel()
함수를 사용합니다.
데이터프레임을 엑셀 파일로 저장하기
Pandas의 to_excel()
메서드를 사용하여 데이터프레임을 엑셀 파일로 저장할 수 있습니다. to_excel()
메서드는 엑셀 파일의 경로와 파일 이름을 지정하는 매개변수를 사용합니다. 아래는 예시 코드입니다.
import pandas as pd
# 샘플 데이터프레임 생성
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Salary': [50000, 60000, 70000]}
df = pd.DataFrame(data)
# 데이터프레임을 엑셀 파일로 저장
file_name = 'sample_data.xlsx'
df.to_excel(file_name, index=False) # index=False를 지정하면 인덱스를 엑셀 파일에 저장하지 않습니다.
Pandas에서는 to_excel()
메서드를 사용하여 데이터프레임을 엑셀로 저장할 수 있으며, 다양한 옵션을 활용하여 저장 방식을 조정할 수 있습니다.
특정 시트명으로 저장
to_excel()
메서드의 sheet_name
매개변수를 사용하여 특정 시트명으로 저장할 수 있습니다.
df.to_excel('output.xlsx', sheet_name='Sheet1', index=False)
특정 컬럼 선택하여 저장
columns
매개변수를 사용하여 특정 컬럼만 선택하여 엑셀로 저장할 수 있습니다.
df.to_excel('output.xlsx', index=False, columns=['Name', 'Salary'])
다중 시트로 저장
ExcelWriter
를 사용하여 여러 개의 데이터프레임을 다중 시트로 저장할 수 있습니다.
with pd.ExcelWriter('output.xlsx') as writer:
df1.to_excel(writer, sheet_name='Sheet1', index=False)
df2.to_excel(writer, sheet_name='Sheet2', index=False)
위의 예시 코드에서 df1
과 df2
는 서로 다른 두 개의 데이터프레임을 나타냅니다. pd.ExcelWriter()
를 사용하여 ExcelWriter 개체를 생성하고, to_excel()
메서드에 writer
를 매개변수로 지정하여 여러 개의 데이터프레임을 다중 시트로 저장합니다.
엑셀 파일을 데이터프레임으로 읽기
Pandas의 read_excel()
함수를 사용하여 엑셀 파일을 읽어 데이터프레임으로 변환할 수 있습니다. read_excel()
함수는 엑셀 파일의 경로와 파일 이름을 지정하는 매개변수를 사용합니다. 아래는 예시 코드입니다.
import pandas as pd
# 엑셀 파일을 데이터프레임으로 읽기
file_name = 'sample_data.xlsx'
df = pd.read_excel(file_name)
print(df)
위 예제에서는 read_excel()
함수를 사용하여 sample_data.xlsx
파일을 읽어서 데이터프레임으로 변환합니다.
그리고 print(df)
를 사용하여 읽어온 데이터프레임을 출력합니다.
다양한 상황을 고려하여 엑셀 파일을 읽고 데이터프레임으로 변환하는 방법을 보여드리겠습니다.
특정 시트 읽기
sheet_name
매개변수를 사용하여 특정 시트를 지정하여 읽을 수 있습니다.
df = pd.read_excel('sample_data.xlsx', sheet_name='Sheet2')
print(df)
특정 행 무시하기
skiprows
매개변수를 사용하여 특정 행을 무시하고 데이터를 읽을 수 있습니다.
df = pd.read_excel('sample_data.xlsx', skiprows=2)
print(df)
특정 열 선택하기
usecols
매개변수를 사용하여 특정 열만 선택하여 데이터프레임으로 읽을 수 있습니다.
df = pd.read_excel('sample_data.xlsx', usecols=['Name', 'Salary'])
print(df)
결측치 처리하기
na_values
매개변수를 사용하여 엑셀 파일에서 읽을 때 결측치를 지정할 수 있습니다.
df = pd.read_excel('sample_data.xlsx', na_values=['NA', 'N/A'])
print(df)
인덱스 컬럼 지정하기
index_col
매개변수를 사용하여 특정 열을 인덱스로 지정할 수 있습니다.
df = pd.read_excel('sample_data.xlsx', index_col='ID')
print(df)
날짜 파싱
parse_dates
매개변수를 사용하여 엑셀 파일에서 날짜 형식의 데이터를 파싱할 수 있습니다.
df = pd.read_excel('sample_data.xlsx', parse_dates=['Date'])
print(df)
다중 시트 읽기
pd.read_excel()
함수는 기본적으로 첫 번째 시트만 읽지만, sheet_name=None
을 지정하여 모든 시트를 읽을 수 있습니다.
all_sheets = pd.read_excel('sample_data.xlsx', sheet_name=None)
for sheet_name, df in all_sheets.items():
print(f"Sheet Name: {sheet_name}")
print(df)
위의 예제에서는 sheet_name=None
을 지정하여 모든 시트를 읽은 후, all_sheets
라는 사전(Dictionary)에 각 시트의 데이터프레임을 저장합니다.
그런 다음 for
루프를 사용하여 각 시트의 이름과 데이터프레임을 출력합니다.
이렇게 to_excel()
메서드와 read_excel()
함수를 사용하여 데이터프레임과 엑셀 파일 간에 데이터를 저장하고 읽을 수 있습니다.
데이터를 엑셀 파일로 저장하면 다른 애플리케이션에서도 데이터를 활용할 수 있으며, 엑셀 파일로부터 데이터를 읽어서 데이터프레임으로 활용할 수 있습니다.