본 콘텐츠의 이미지 및 내용은 AI로 생성되었습니다.
본 콘텐츠의 이미지 및 내용을 무단으로 복제, 배포, 수정하여 사용할 경우 저작권법에 의해 법적 제재를 받을 수 있습니다.
이미지 로딩 중...
AI Generated
2025. 11. 4. · 30 Views
Pandas 최신 기능 소개
Pandas의 최신 버전에서 추가된 강력한 기능들을 소개합니다. 데이터 분석 작업을 더욱 효율적이고 편리하게 만드는 실용적인 기능들을 초급자도 쉽게 따라할 수 있도록 구성했습니다.
들어가며
이 글에서는 Pandas 최신 기능 소개에 대해 상세히 알아보겠습니다. 총 12가지 주요 개념을 다루며, 각각의 개념에 대한 설명과 실제 코드 예제를 함께 제공합니다.
목차
- pipe_메서드_체이닝
- case_when_조건문
- query_메서드_고급_필터링
- assign_메서드_컬럼_추가
- explode_리스트_확장
- to_numpy_빠른_배열_변환
- convert_dtypes_자동_타입_변환
- between_범위_필터링
- mask_조건부_값_변경
- sample_랜덤_샘플링
- select_dtypes_타입별_선택
- nlargest_nsmallest_상위하위_조회
1. pipe 메서드 체이닝
개요
pipe 메서드를 사용하면 여러 데이터 처리 함수를 연결하여 가독성 높은 코드를 작성할 수 있습니다.
코드 예제
import pandas as pd
df = pd.DataFrame({'score': [80, 90, 70, 85]})
def add_grade(df):
df['grade'] = df['score'].apply(lambda x: 'A' if x >= 85 else 'B')
return df
result = df.pipe(add_grade)
print(result)
설명
pipe 메서드로 함수를 체인처럼 연결하여 데이터프레임을 변환할 수 있습니다. 여러 단계의 데이터 처리를 깔끔하게 표현할 수 있습니다.
2. case when 조건문
개요
여러 조건에 따라 값을 할당할 때 case_when을 사용하면 if-elif-else보다 훨씬 간단합니다.
코드 예제
import pandas as pd
df = pd.DataFrame({'age': [15, 25, 35, 65]})
df['category'] = pd.Series(df['age']).case_when([
(df['age'] < 20, '청소년'),
(df['age'] < 60, '성인'),
(df['age'] >= 60, '노년')
])
print(df)
설명
case_when은 여러 조건을 순서대로 평가하여 해당하는 값을 반환합니다. SQL의 CASE WHEN과 유사한 직관적인 문법입니다.
3. query 메서드 고급 필터링
개요
query 메서드를 사용하면 SQL처럼 문자열로 조건을 작성하여 데이터를 필터링할 수 있습니다.
코드 예제
import pandas as pd
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'salary': [50000, 60000, 70000, 80000]
})
result = df.query('age > 28 and salary >= 60000')
print(result)
설명
query 메서드는 복잡한 조건을 문자열로 간단하게 표현할 수 있어 코드 가독성이 높아집니다. 변수명을 직접 사용할 수 있습니다.
4. assign 메서드 컬럼 추가
개요
assign 메서드를 사용하면 새로운 컬럼을 추가하면서 메서드 체이닝을 유지할 수 있습니다.
코드 예제
import pandas as pd
df = pd.DataFrame({'price': [1000, 2000, 3000]})
result = (df
.assign(tax=lambda x: x['price'] * 0.1)
.assign(total=lambda x: x['price'] + x['tax'])
)
print(result)
설명
assign은 원본 데이터프레임을 변경하지 않고 새로운 컬럼을 추가한 복사본을 반환합니다. 람다 함수로 계산 로직을 표현합니다.
5. explode 리스트 확장
개요
컬럼에 리스트가 포함된 경우 explode로 각 요소를 개별 행으로 펼칠 수 있습니다.
코드 예제
import pandas as pd
df = pd.DataFrame({
'name': ['Alice', 'Bob'],
'hobbies': [['reading', 'gaming'], ['cooking', 'sports', 'music']]
})
result = df.explode('hobbies')
print(result)
설명
explode는 리스트나 배열 컬럼의 각 요소를 별도의 행으로 분리합니다. 중첩된 데이터를 평면화할 때 유용합니다.
6. to numpy 빠른 배열 변환
개요
to_numpy 메서드는 데이터프레임을 NumPy 배열로 변환하는 최신 권장 방식입니다.
코드 예제
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6]
})
arr = df.to_numpy()
print(arr)
print(type(arr))
설명
to_numpy()는 values 속성보다 명확하고 안전한 배열 변환 방법입니다. dtype을 자동으로 추론하여 최적의 배열을 생성합니다.
7. convert dtypes 자동 타입 변환
개요
convert_dtypes는 데이터프레임의 각 컬럼을 최적의 데이터 타입으로 자동 변환합니다.
코드 예제
import pandas as pd
df = pd.DataFrame({
'int_col': [1, 2, 3],
'str_col': ['a', 'b', 'c'],
'bool_col': [True, False, True]
})
result = df.convert_dtypes()
print(result.dtypes)
설명
convert_dtypes는 각 컬럼의 내용을 분석하여 가장 적합한 Pandas 타입으로 변환합니다. 메모리 효율성과 성능이 향상됩니다.
8. between 범위 필터링
개요
between 메서드로 특정 범위에 속하는 값을 간단하게 필터링할 수 있습니다.
코드 예제
import pandas as pd
df = pd.DataFrame({'score': [50, 70, 85, 90, 95]})
result = df[df['score'].between(70, 90)]
print(result)
설명
between은 지정한 최소값과 최대값 사이의 데이터를 선택합니다. 기본적으로 경계값도 포함되며 inclusive 파라미터로 조정 가능합니다.
9. mask 조건부 값 변경
개요
mask 메서드는 조건이 참인 위치의 값을 다른 값으로 교체합니다.
코드 예제
import pandas as pd
df = pd.DataFrame({'value': [10, 20, 30, 40, 50]})
result = df['value'].mask(df['value'] > 30, 999)
print(result)
설명
mask는 조건을 만족하는 값만 변경하고 나머지는 유지합니다. where의 반대 개념으로 조건부 데이터 정제에 유용합니다.
10. sample 랜덤 샘플링
개요
sample 메서드로 데이터프레임에서 랜덤하게 행을 추출할 수 있습니다.
코드 예제
import pandas as pd
df = pd.DataFrame({
'name': ['A', 'B', 'C', 'D', 'E'],
'value': [10, 20, 30, 40, 50]
})
result = df.sample(n=3, random_state=42)
print(result)
설명
sample은 무작위로 n개의 행을 선택합니다. random_state를 설정하면 동일한 샘플을 재현할 수 있어 테스트에 유용합니다.
11. select dtypes 타입별 선택
개요
select_dtypes로 특정 데이터 타입의 컬럼만 선택하여 작업할 수 있습니다.
코드 예제
import pandas as pd
df = pd.DataFrame({
'name': ['Alice', 'Bob'],
'age': [25, 30],
'salary': [50000.0, 60000.0]
})
numeric_cols = df.select_dtypes(include=['number'])
print(numeric_cols)
설명
select_dtypes는 숫자형, 문자형 등 데이터 타입별로 컬럼을 필터링합니다. 대량의 컬럼을 타입별로 일괄 처리할 때 편리합니다.
12. nlargest nsmallest 상위하위 조회
개요
nlargest와 nsmallest로 특정 컬럼 기준 상위/하위 n개 데이터를 빠르게 조회할 수 있습니다.
코드 예제
import pandas as pd
df = pd.DataFrame({
'name': ['A', 'B', 'C', 'D', 'E'],
'score': [85, 92, 78, 95, 88]
})
top3 = df.nlargest(3, 'score')
print(top3)
설명
nlargest는 지정한 컬럼의 값이 큰 순서대로 n개를 반환합니다. sort_values와 head를 조합한 것보다 성능이 우수합니다.
마치며
이번 글에서는 Pandas 최신 기능 소개에 대해 알아보았습니다. 총 12가지 개념을 다루었으며, 각각의 사용법과 예제를 살펴보았습니다.
관련 태그
#Python #Pandas #DataAnalysis #DataFrame #DataScience
댓글 (0)
함께 보면 좋은 카드 뉴스
vLLM 통합 완벽 가이드
대규모 언어 모델 추론을 획기적으로 가속화하는 vLLM의 설치부터 실전 서비스 구축까지 다룹니다. PagedAttention과 연속 배칭 기술로 GPU 메모리를 효율적으로 활용하는 방법을 배웁니다.
Web UI Demo 구축 완벽 가이드
Gradio를 활용하여 머신러닝 모델과 AI 서비스를 위한 웹 인터페이스를 구축하는 방법을 다룹니다. 코드 몇 줄만으로 전문적인 데모 페이지를 만들고 배포하는 과정을 초급자도 쉽게 따라할 수 있도록 설명합니다.
Sandboxing & Execution Control 완벽 가이드
AI 에이전트가 코드를 실행할 때 반드시 필요한 보안 기술인 샌드박싱과 실행 제어에 대해 알아봅니다. 격리된 환경에서 안전하게 코드를 실행하고, 악성 동작을 탐지하는 방법을 단계별로 설명합니다.
Voice Design then Clone 워크플로우 완벽 가이드
AI 음성 합성에서 일관된 캐릭터 음성을 만드는 Voice Design then Clone 워크플로우를 설명합니다. 참조 음성 생성부터 재사용 가능한 캐릭터 구축까지 실무 활용법을 다룹니다.
Tool Use 완벽 가이드 - Shell, Browser, DB 실전 활용
AI 에이전트가 외부 도구를 활용하여 셸 명령어 실행, 브라우저 자동화, 데이터베이스 접근 등을 수행하는 방법을 배웁니다. 실무에서 바로 적용할 수 있는 패턴과 베스트 프랙티스를 담았습니다.