Pandas 기초 사용법
Pandas
pandas는 표 형태의 데이터를 다루기 쉽게 해주는 파이썬 라이브러리
엑셀에서 행과 열로 이루어진 표를 다루는 것처럼, pandas를 사용하면 파이썬에서도 CSV, 엑셀, 데이터베이스에서 가져온 데이터를 편하게 다룰 수 있다.
1. pandas 설치
pip install pandas
- 호출
import pandas as pd
2. DataFrame
DataFrame은 행과 열이 있는 표. 엑셀 시트나 데이터베이스 테이블을 떠올리면 이해하기 쉽다.
import pandas as pd
data = {
"이름": ["철수", "영희", "민수"],
"나이": [20, 25, 22],
"점수": [80, 95, 70]
}
df = pd.DataFrame(data)
print(df)
출력 결과는 다음과 비슷하다.
이름 나이 점수
0 철수 20 80
1 영희 25 95
2 민수 22 70
왼쪽의 0, 1, 2는 각 행의 번호다. pandas에서는 이를 index라고 부른다.
3. CSV 파일 읽기
pandas는 파일을 읽어올 때 많이 사용한다.
CSV 파일을 읽으려면 다음과 같이 작성한다.
df = pd.read_csv("data.csv")
엑셀 파일도 읽을 수 있다.
df = pd.read_excel("data.xlsx")
읽어온 데이터는 DataFrame 형태로 저장된다.
4. 데이터 미리 보기
데이터가 크면 전체를 한 번에 보기 어렵다. 이럴 때는 일부만 확인한다.
앞의 5줄을 보고 싶다면 head()를 사용한다.
df.head()
뒤의 5줄을 보고 싶다면 tail()을 사용한다.
df.tail()
데이터의 열 이름, 비어 있지 않은 값의 개수, 자료형 등을 확인하려면 info()를 사용한다.
df.info()
숫자 데이터의 평균, 최솟값, 최댓값 같은 기본 통계를 확인하려면 describe()를 사용한다.
df.describe()
5. 특정 열 선택하기
특정 열 하나만 보고 싶을 때는 열 이름을 사용한다.
df["이름"]
여러 열을 선택할 수도 있다.
df[["이름", "점수"]]
여러 열을 선택할 때는 대괄호가 두 번 들어간다.
df[["열1", "열2"]]
바깥쪽 대괄호는 DataFrame에서 열을 고르는 역할을 하고, 안쪽 대괄호는 여러 열 이름을 리스트로 묶는 역할을 한다.
6. 조건으로 행 선택하기
pandas에서는 조건에 맞는 행만 골라낼 수 있다.
예를 들어 점수가 80점 이상인 사람만 보고 싶다면 다음과 같이 작성한다.
df[df["점수"] >= 80]
나이가 22살 이상인 사람만 보고 싶다면 다음과 같이 작성한다.
df[df["나이"] >= 22]
이 형태는 pandas에서 매우 자주 사용한다.
df[df["열이름"] 조건]
예를 들어 다음 코드는 점수가 90보다 작은 행만 선택한다.
df[df["점수"] < 90]
df["점수"] < 90이 각 행에 대해 참인지 거짓인지를 판단하고, 그중 참인 행만 df[...]가 골라낸다.
7. 새 열 만들기
기존 데이터를 이용해 새로운 열을 만들 수 있다.
예를 들어 점수가 80점 이상이면 합격 여부를 표시해보자.
df["합격여부"] = df["점수"] >= 80
결과는 다음과 비슷하다.
이름 나이 점수 합격여부
0 철수 20 80 True
1 영희 25 95 True
2 민수 22 70 False
True는 참, False는 거짓을 의미한다.
새 열을 만들 때는 다음 형태를 기억하면 된다.
df["새 열 이름"] = 값
여기서 값은 하나의 숫자나 문자열일 수도 있고, 기존 열을 계산한 결과일 수도 있다.
8. 데이터 정렬하기
특정 열을 기준으로 데이터를 정렬할 수 있다.
점수가 낮은 순서대로 정렬하려면 다음과 같이 작성한다.
df.sort_values("점수")
점수가 높은 순서대로 정렬하려면 ascending=False를 추가한다.
df.sort_values("점수", ascending=False)
ascending은 오름차순 여부를 뜻한다. ascending=False는 오름차순이 아니라는 뜻이므로 내림차순 정렬이 된다.
9. 평균, 합계, 최댓값 구하기
숫자 열에 대해 여러 계산을 할 수 있다.
점수 평균을 구하려면 mean()
df["점수"].mean()
점수 합계를 구하려면 sum()
df["점수"].sum()
가장 높은 점수를 구하려면 max()
df["점수"].max()
가장 낮은 점수를 구하려면 min()
df["점수"].min()
데이터 개수를 세려면 count()
df["점수"].count()
10. CSV 파일로 저장하기
수정한 데이터를 다시 CSV 파일로 저장할 수 있다.
df.to_csv("result.csv", index=False)
여기서 index=False는 왼쪽의 행 번호를 파일에 저장하지 않겠다는 뜻이다. CSV로 저장할 때 대부분 함께 사용한다.
11. pandas 기본 흐름
- 파일을 읽는다.
- 데이터를 미리 본다.
- 필요한 열을 선택한다.
- 조건에 맞는 행을 선택한다.
- 새 열을 만든다.
- 정렬하거나 계산한다.
- 파일로 저장한다.
- 예시
import pandas as pd
df = pd.read_csv("data.csv")
result = df[df["점수"] >= 80]
result = result.sort_values("점수", ascending=False)
result.to_csv("result.csv", index=False)
data.csv파일을 읽는다.점수가 80점 이상인 행만 고른다.- 점수가 높은 순서대로 정렬한다.
- 결과를
result.csv로 저장한다.
핵심 문법 요약
- 특정 열 선택
df["열이름"]
- 여러 열 선택
df[["열1", "열2"]]
- 조건에 맞는 행 선택
df[df["열이름"] 조건]
- 새 열 만들기
df["새열이름"] = 값
- 정렬하기
df.sort_values("열이름")
- CSV로 저장하기
df.to_csv("파일명.csv", index=False)