판다스 기능 명단

🏷️ 머신러닝

Series 생성

import pandas as pd


<!-- -->
# 리스트로 Series 생성
s = pd.Series([1, 2, 3, 4, 5])


<!-- -->
# 인덱스 지정하여 생성
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])


<!-- -->
# 딕셔너리로 Series 생성 
data = {'a': 1, 'b': 2, 'c': 3}
s = pd.Series(data)

Indexing


<!-- -->
# 정수형 인덱스 접근
s[0]  # 첫번째 요소
s[1:3]  # 1번부터 2번 요소까지


<!-- -->
# 라벨 인덱스 접근
s['a']  # 'a' 라벨의 요소
s['a':'c']  # 'a'부터 'c' 라벨까지


<!-- -->
# boolean 인덱싱
s[s > 2]  # 2보다 큰 요소만 선택

DataFrame 생성


<!-- -->
# 딕셔너리로 생성
data = {
    'name': ['Kim', 'Lee', 'Park'],
    'age': [20, 30, 40],
    'city': ['Seoul', 'Busan', 'Incheon']
}
df = pd.DataFrame(data)


<!-- -->
# 리스트로 생성
data = [
    ['Kim', 20, 'Seoul'],
    ['Lee', 30, 'Busan'],
    ['Park', 40, 'Incheon']
]
df = pd.DataFrame(data, columns=['name', 'age', 'city'])

DataFrame Indexing

import pandas as pd


<!-- -->
# 예시 데이터프레임 생성
df = pd.DataFrame({
    '이름': ['김철수', '이영희', '박민수', '최영식', '정미나'],
    '나이': [25, 28, 30, 22, 35],
    '성별': ['남', '여', '남', '남', '여'],
    '점수': [85, 92, 78, 95, 88]
}, index=['a', 'b', 'c', 'd', 'e'])  # 커스텀 인덱스 설정


df.index 

<!-- -->
# pandas.core.indexes.range.RangeIndex(기본)

<!-- -->
# pandas.core.indexes.base.Index (커스텀)

df.set_index('열 이름') # 특정 열을 인덱스로 설정
df.reset_index() # 기본 인덱스로 설정

1. 열(Column) 선택


<!-- -->
# 단일 열 선택
df['이름']      # Series 반환
df.이름         # 점(.) 표기법 (공백이나 특수문자 없을 때)


<!-- -->
# 여러 열 선택
df['이름', '나이'](이름-나이.html)  # DataFrame 반환

2. loc - 라벨 기반 인덱싱


<!-- -->
# 단일 행 선택
df.loc['a']     # Series 반환


<!-- -->
# 여러 행 선택
df.loc['a', 'b', 'c'](a-b-c.html)  


<!-- -->
# 행과 열 동시 선택
df.loc['a', '이름']                  # 단일 값
df.loc['a', 'b'], ['이름', '나이'](a-b-이름-나이.html)  # 부분 DataFrame


<!-- -->
# 조건부 선택
df.loc[df['나이'] > 25]              # 조건에 맞는 행 선택

3. iloc - 위치 기반 인덱싱


<!-- -->
# 단일 행 선택
df.iloc[0]      # 첫 번째 행


<!-- -->
# 여러 행 선택
df.iloc[0:3]    # 0,1,2번 행 선택


<!-- -->
# 행과 열 동시 선택
df.iloc[0, 0]                 # 첫 번째 행, 첫 번째 열
df.iloc[0:2, 0:2]            # 부분 DataFrame
df.iloc[0, 2], [1, 3](0-2-1-3.html)      # 특정 행과 열 선택

4. 불린 인덱싱


<!-- -->
# 조건을 활용한 필터링
mask = df['나이'] > 25
df[mask]


<!-- -->
# 여러 조건 조합
df[(df['나이'] > 25) & (df['성별'] == '남')]  # AND 조건
df[(df['나이'] > 25) | (df['성별'] == '여')]  # OR 조건

5. 데이터 수정


<!-- -->
# 값 변경
df.loc['a', '점수'] = 90                # 단일 값 변경
df.loc['a':'c', '점수'] = [91, 92, 93]  # 여러 값 변경


<!-- -->
# 조건부 값 변경
df.loc[df['나이'] > 30, '점수'] = 100    # 조건에 맞는 행의 값 변경

6. 고급 인덱싱 기법


<!-- -->
# 인덱스 레벨 변경
df.set_index('이름')             # 이름 열을 인덱스로 설정
df.reset_index()                # 인덱스를 열로 변환


<!-- -->
# 다중 인덱스
df2 = df.set_index(['성별', '나이'])  # 다중 인덱스 설정
df2.loc['남']                    # 상위 레벨 인덱스 선택
df2.loc[('남', 25)]             # 특정 인덱스 조합 선택

7. 인덱스 관련 속성과 메서드

df.index        # 인덱스 확인
df.columns      # 열 이름 확인
df.dtypes       # 데이터 타입 확인


<!-- -->
# 인덱스 연산
df.reindex(['a', 'b', 'f'])     # 새로운 인덱스로 재구성
df.sort_index()                 # 인덱스로 정렬
df.sort_values('나이')           # 특정 열 기준으로 정렬