🤖

본 콘텐츠의 이미지 및 내용은 AI로 생성되었습니다.

⚠️

본 콘텐츠의 이미지 및 내용을 무단으로 복제, 배포, 수정하여 사용할 경우 저작권법에 의해 법적 제재를 받을 수 있습니다.

이미지 로딩 중...

Pandas 최신 기능 소개 - 슬라이드 1/13
A

AI Generated

2025. 11. 4. · 12 Views

Pandas 최신 기능 소개

Pandas의 최신 버전에서 추가된 강력한 기능들을 소개합니다. 데이터 분석 작업을 더욱 효율적이고 편리하게 만드는 실용적인 기능들을 초급자도 쉽게 따라할 수 있도록 구성했습니다.


카테고리:Python
언어:Python
메인 태그:#Python
서브 태그:
#Pandas#DataAnalysis#DataFrame#DataScience

들어가며

이 글에서는 Pandas 최신 기능 소개에 대해 상세히 알아보겠습니다. 총 12가지 주요 개념을 다루며, 각각의 개념에 대한 설명과 실제 코드 예제를 함께 제공합니다.

목차

  1. pipe_메서드_체이닝
  2. case_when_조건문
  3. query_메서드_고급_필터링
  4. assign_메서드_컬럼_추가
  5. explode_리스트_확장
  6. to_numpy_빠른_배열_변환
  7. convert_dtypes_자동_타입_변환
  8. between_범위_필터링
  9. mask_조건부_값_변경
  10. sample_랜덤_샘플링
  11. select_dtypes_타입별_선택
  12. 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

#Python#Pandas#DataAnalysis#DataFrame#DataScience

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.
이전4/4
다음