[Python] 11. Pandas 데이터프레임 Excel 읽고 쓰기

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)

위의 예시 코드에서 df1df2는 서로 다른 두 개의 데이터프레임을 나타냅니다.
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() 함수를 사용하여 데이터프레임과 엑셀 파일 간에 데이터를 저장하고 읽을 수 있습니다.
데이터를 엑셀 파일로 저장하면 다른 애플리케이션에서도 데이터를 활용할 수 있으며, 엑셀 파일로부터 데이터를 읽어서 데이터프레임으로 활용할 수 있습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤