[Python] 파이썬 라이브러리 pandas 기본 개념, 함수 및 메소드 정리
2025. 3. 2. 21:58ㆍPython 파이썬
반응형
1. 기본 개념
- DataFrame:
- 2차원 테이블 형태의 데이터 구조. 여러 열(Series)로 구성됨.
- 엑셀의 시트와 비슷하게, 행과 열로 데이터를 관리할 수 있음.
- Series:
- DataFrame의 한 열을 의미하는 1차원 배열 같은 객체.
- 단순 리스트와 달리 각 데이터 값에 인덱스(레이블)가 포함되어 있음.
- 딕셔너리의 key 값이 열, 그 열의 데이터는 value가 됨
예제:
import pandas as pd
data = {"Name": ["Alice", "Bob", "Charlie"], "Age": [25, 30, 35]}
df = pd.DataFrame(data)
print(df)
출력:
Name Age
0 Alice 25
1 Bob 30
2 Charlie 35
df["Name"]은 "Name" 열의 데이터를 Series로 반환함.
이를 .tolist()로 변환하면 그냥 리스트가 됨
2. 파일 입출력
2.1 다양한 포맷의 파일 읽기
- 엑셀 파일 읽기 : read_excel()
- CSV 파일 읽기 : read_csv()
- JSON 파일 읽기 : read_json()
- SQL 데이터 읽기 : read_sql()
# "data.xlsx" 파일을 읽어서 DataFrame으로 변환
df_excel = pd.read_excel("data.xlsx")
# "data.csv" 파일을 읽어서 DataFrame으로 변환
df_csv = pd.read_csv("data.csv")
# "data.json" 파일을 읽어서 DataFrame으로 변환
df_json = pd.read_json("data.json")
- 특정 엑셀 시트 읽기
# 특정 시트 읽기
df_sheet = pd.read_excel("data.xlsx", sheet_name="Sheet1")
- CSV 파일 읽기의 구분자나 인코딩 지정
df_csv = pd.read_csv("data.csv", delimiter=",", encoding="utf-8")
- JSON 형식의 파일 형식 조정
df_json = pd.read_json("data.json", orient="records")
- 데이터베이스에서 SQL 쿼리 결과를 DataFrame으로 가져오기. (DBMS 와 연동 가능하도록 SQLAlchemy 등과 함계 사용할수 있음)
# SQLite 데이터베이스 연결 후 쿼리 결과를 DataFrame으로 읽기
import sqlite3
conn = sqlite3.connect("database.db")
df_sql = pd.read_sql("SELECT * FROM my_table", conn)
conn.close()
2.2 새 열 추가
# 예시: "Age" 열 값을 기반으로 "Status" 열 추가 ("Adult" 또는 "Minor")
df_excel["Status"] = df_excel["Age"].apply(lambda age: "Adult" if age >= 20 else "Minor")
- **설명:**특정 열의 데이터를 기반으로 조건에 따라 새 열을 추가할 수 있음..apply() 함수를 사용하여 각 값에 대해 함수를 적용함.
2.3 DataFrame을 파일로 저장하기
다양한 파일 포맷으로 저장
- 엑셀 파일로 저장 : to_excel()
- CSV 파일로 저장 : to_csv()
- JSON 파일로 저장 : to_json()
df_excel.to_excel("output.xlsx", index=False)
df_csv.to_csv("output.csv", index=False)
df_json.to_json("output.json", orient="records", lines=True)
- to_excel : DataFrame을 엑셀 파일로 저장하며, 인덱스를 포함하지 않고 저장할 수 있음.
- to_csv : DataFrame을 CSV 파일로 저장. 기본적으로 쉼표(,)로 구분되며, 옵션을 통해 구분자 등을 변경할 수 있음.
- to_json : DataFrame을 JSON 파일로 저장. orient 옵션을 통해 출력 형식을 지정할 수 있으며, lines=True 옵션을 사용하면 줄 단위로 JSON 객체를 출력함.
자주 사용하는 pandas 함수 및 메서드
1. 데이터 확인 및 요약
- df.head(n=5) : DataFrame의 처음 n행을 반환하여 데이터를 빠르게 확인할 때 사용.
- df.tail(n=5) : DataFrame의 마지막 n행을 반환.
- df.info() : 데이터의 요약 정보(컬럼, 데이터 타입, 결측치 개수 등)를 출력.
- df.describe() : 수치형 데이터에 대한 통계 요약(평균, 표준편차, 사분위수 등)을 제공.
- df.shape : DataFrame의 행과 열의 개수를 튜플(행, 열)로 반환.
- df.columns : DataFrame의 컬럼 이름들을 Index 객체로 반환.
- df.index : DataFrame의 인덱스(행 레이블)를 반환.
2. 데이터 선택 및 인덱싱
- df["ColumnName"] / df.ColumnName : 특정 열 선택. Series 형태로 반환.
- df.loc[행_레이블, 열_레이블] : 라벨 기반 인덱싱. 조건에 맞는 행과 열을 선택.
- df.iloc[행_번호, 열_번호] : 위치 기반 인덱싱. 정수 인덱스를 사용하여 데이터 선택.
- df.at[행_레이블, "ColumnName"] / df.iat[행_번호, 열_번호] : 단일 값에 빠르게 접근.
3. 데이터 정제 및 변환
- df.drop() : 특정 행 또는 열을 제거.
-
df.drop("ColumnName", axis=1, inplace=True) # 열 제거
- df.drop_duplicates() : 중복된 행을 제거.
- df.fillna(value) : 결측치(NaN)를 지정한 값으로 대체.
- df.isna() / df.notna() : 결측치 여부를 Boolean DataFrame으로 반환.
- df.replace() : 특정 값 또는 패턴을 다른 값으로 대체.
- df.astype() : 데이터 타입을 변경.
4. 데이터 병합 및 그룹화
- df.merge(other_df, on="Key") : 두 DataFrame을 특정 열을 기준으로 병합.
- df.join(other_df) : 인덱스를 기준으로 DataFrame을 결합.
- df.groupby("Column") : 특정 열을 기준으로 그룹화하여 집계(aggregate) 작업 수행.
- df.pivot_table() : 데이터를 재구조화하여 요약 통계 테이블 생성.
5. 데이터 적용 및 연산
- df.apply(function) : 각 행 또는 열에 함수를 적용.
- df.applymap(function) : DataFrame의 각 요소에 함수를 적용 (전체 요소에 대해 적용).
- df.map() : Series에 함수를 적용하거나, 딕셔너리/함수를 이용해 값 매핑.
- df.value_counts() : Series 내 각 값의 빈도수를 계산.
6. 데이터 정렬 및 인덱스 재설정
- df.sort_values("ColumnName") : 특정 열을 기준으로 오름차순 또는 내림차순 정렬.
- df.sort_index() : 인덱스를 기준으로 정렬.
- df.reset_index(drop=True) : 인덱스를 초기화하여 새로운 정수 인덱스로 재설정.
반응형
'Python 파이썬' 카테고리의 다른 글
[Python] 파이썬의 함수 def, 클래스 class 상속에 대하여 (0) | 2025.03.17 |
---|---|
[Python] 파이썬 기초 정리-2 | 기본 연산자 (산술 연산자, 비교 연산자, 논리 연산자, 할당 연산자) | 파이썬 기본 문법 (0) | 2024.05.16 |
[Python] 파이썬 기초 정리-1 | 변수, 데이터 타입 (자료형), 형변환 | 파이썬 기초 문법 (0) | 2024.05.16 |