Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

짱이 될거야

2022-09-15: Python으로 excel 파일 읽고 수정 및 저장 본문

Today I Learned

2022-09-15: Python으로 excel 파일 읽고 수정 및 저장

jeong57 2022. 9. 15. 09:31

1. Excel 파일 읽어오기

먼저, VSCode에 python 파일을 하나 만들고, pandas library를 import 한다.

import pandas as pd

이후, 읽어올 엑셀 파일 경로를 변수에 저장해둔다. 매번 경로를 적지 않고 변수를 사용하면 훨씬 편리하다.

# 읽어올 엑셀 파일 지정
filename = './data.xlsx'

이제 엑셀 파일을 읽어와야 하는데, pandas의 read_excel을 활용한다.

# 엑셀 파일 읽어 오기
df = pd.read_excel(filename, engine='openpyxl')

이 때 openpyxl이 없다는 에러가 뜰 수 있는데, pip install openpyxl을 하면 해결된다.

 

2. Excel 파일에 열 추가하기

엑셀 파일에 열을 추가하는 것은 간단한데, 아래와 같이 추가할 열의 이름을 적고 넣을 값을 적으면 된다.

결과를 확인하고 싶다면 print(df)를 통해 볼 수 있다.

df['index'] = 0
# print(df)

 

3. Excel의 한 셀 선택하기

1 name idx
2 apple 0
3 banana 0
4 orange 0

위와 같은 예시 테이블이 있다고 가정하자. 이 때, apple이 있는 셀을 선택하고 싶다.

excel의 한 셀을 선택할 때는 열제목과 행제목 부분은 제외되기 때문에 apple 값이 들어있는 셀의 위치는 [0, 0], banana가 들어있는 셀의 위치는 [1, 0]이다.

따라서 apple을 선택하고 싶다면 변수에 아래의 값을 넣으면 된다.

name = df.iat[0, 0]

 

4. Excel에서 For문 돌리기

마찬가지로 위의 표를 예시로 해서 설명하면, excel에서 for문을 돌릴 때는 apple부터 orange가 있는 행까지만 돌리면 된다. 여기서 헷갈리는 부분은 apple의 셀 위치는 [0, 0]인데, 실제 엑셀에 나타나는 셀 위치는 [2, B]이다.

따라서 행 For문을 돌릴 때는 제목을 제외한 값이 들어있는 행 만큼 돌리면 된다.

이 예시에서는 아래와 같은 코드가 될 것이다.

for i in range(3):   # 행
    if df.iat[i, 0] == name:
        pass
    else:
        pass

열까지 탐색하고 싶다면 2중 for문을 활용하면 된다.

 

5. Excel 저장하기

excel 저장하는 방법도 꽤 간단한데, 아래와 같이 코드를 입력하면 된다.

df.to_excel('./data.xlsx', sheet_name='new_name')
Comments