판다스 기능 명단
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('나이') # 특정 열 기준으로 정렬