본 콘텐츠의 이미지 및 내용은 AI로 생성되었습니다.
본 콘텐츠의 이미지 및 내용을 무단으로 복제, 배포, 수정하여 사용할 경우 저작권법에 의해 법적 제재를 받을 수 있습니다.
이미지 로딩 중...
AI Generated
2025. 11. 4. · 12 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)
함께 보면 좋은 카드 뉴스
Helm 마이크로서비스 패키징 완벽 가이드
Kubernetes 환경에서 마이크로서비스를 효율적으로 패키징하고 배포하는 Helm의 핵심 기능을 실무 중심으로 학습합니다. Chart 생성부터 릴리스 관리까지 체계적으로 다룹니다.
보안 아키텍처 구성 완벽 가이드
프로젝트의 보안을 처음부터 설계하는 방법을 배웁니다. AWS 환경에서 VPC부터 WAF, 암호화, 접근 제어까지 실무에서 바로 적용할 수 있는 보안 아키텍처를 단계별로 구성해봅니다.
AWS Organizations 완벽 가이드
여러 AWS 계정을 체계적으로 관리하고 통합 결제와 보안 정책을 적용하는 방법을 실무 스토리로 쉽게 배워봅니다. 초보 개발자도 바로 이해할 수 있는 친절한 설명과 실전 예제를 제공합니다.
AWS KMS 암호화 완벽 가이드
AWS KMS(Key Management Service)를 활용한 클라우드 데이터 암호화 방법을 초급 개발자를 위해 쉽게 설명합니다. CMK 생성부터 S3, EBS 암호화, 봉투 암호화까지 실무에 필요한 모든 내용을 담았습니다.
AWS Secrets Manager 완벽 가이드
AWS에서 데이터베이스 비밀번호, API 키 등 민감한 정보를 안전하게 관리하는 Secrets Manager의 핵심 개념과 실무 활용법을 배워봅니다. 초급 개발자도 쉽게 따라할 수 있도록 실전 예제와 함께 설명합니다.