2024.01.06 TIL

녹차·2024년 2월 6일

TIL_Python

목록 보기
7/9

DataFrame Method

1. apply

apply 메서드를 사용하여 함수를 만들거나 람다 함수를 적용하여 새로운 컬럼을 만들 수 있습니다.

pythonCopy code
# 예시: 고객의 나이 계산
customers['Age'] = customers['Year_Birth'].apply(lambda year: 2024 - year)

2. Series.map

특정 컬럼의 데이터 값을 매핑하여 원하는 결과값으로 대체합니다.

pythonCopy code
# 예시: 결혼 여부를 숫자로 매핑
customers['Marital_Status'] = customers['Marital_Status'].map({'Single': 0, 'Married': 1})

3. DataFrame.applymap

데이터프레임 전체에 대해 적용할 함수를 지정하여 처리합니다.

pythonCopy code
# 예시: 모든 문자열을 대문자로 변환
customers = customers.applymap(lambda x: str(x).upper())

4. 타입 변환 astype

메모리 사용을 최적화하기 위해 데이터 타입을 변환합니다.

pythonCopy code
# 예시: 출생 연도의 데이터 타입을 int16로 변경
customers['Year_Birth'] = customers['Year_Birth'].astype('int16')

5. 교체 replace

특정 값들을 다른 값으로 교체합니다.

pythonCopy code
# 예시: 결혼 여부 칼럼의 특정 값들 교체
customers['Marital_Status'].replace({'Alone': 'Single', 'Absurd': 'Single', 'YOLO': 'Single'}, inplace=True)

6. 조건식 (where)

조건에 따라 값을 대체하거나 유지합니다.

pythonCopy code
# 예시: 어린이가 2명 이상인 경우에만 유지, 그 외에는 None으로 대체
customers['Kidhome'] = customers['Kidhome'].where(customers['Kidhome'] >= 2, other=None)

7. agg

여러 함수를 한 번에 적용하여 집계합니다.

pythonCopy code
# 예시: 연간 가구 소득에 대한 여러 통계량 집계
income_stats = customers['Income'].agg(['mean', 'median', 'std'])
💡 **`agg`** 메서드를 사용할 때, 컬럼에 문자열이 포함되면 에러가 발생할 수 있으므로 해당 컬럼을 제거하거나 처리해주어야 합니다. 💡 데이터프레임이나 시리즈의 멀티인덱스를 생성하려면 적절한 형태로 인덱스를 지정해주어야 합니다.

멀티인덱스? 멀티인덱싱?

  • 하나 이상의 인덱스 레벨을 가지는 인덱스 구조.
  • 데이터프레임이나 시리즈의 다차원적인 인덱싱을 지원하기 위해 사용.
  • 멀티인덱스로 인해 데이터를 계층적(hierarchical)으로 조직화.
  • 다양한 차원(Multi-level)에서 데이터에 접근 가능.
  • 멀티인덱스 생성은 데이터프레임 또는 시리즈를 생성할 때 인덱스를 array같은 형태로 지정한다.
profile
가장 예쁜 꽃은 우여곡절 끝에 피는 꽃

0개의 댓글