데이터 분석을 위한 Pandas 주요 함수 정리
Pandas는 데이터 분석과 조작을 위한 강력한 도구를 제공하며,
다양한 함수들을 통해 효율적으로 작업할 수 있다.
아래는 데이터를 다루는 데 유용한 Pandas의 주요 함수들을 정리한 내용이다.
데이터 조작 함수
- add(), sub(), mul(), div(): 각각 덧셈, 뺄셈, 곱셈, 나눗셈 등의 산술 연산을 수행한다.
- sum(): 값들의 합을 계산한다.
- mean(): 평균값을 계산한다.
- prod(): 값들의 곱을 계산한다.
- abs(): 절댓값을 반환한다.
데이터 분석 함수
- count(): NaN 값을 제외하고 행의 개수를 센다.
- size(): 요소의 전체 개수를 출력한다.
- unique(): 고유한 값들을 반환한다.
- nunique(): 고유한 값들의 개수를 반환한다.
- value_counts(): 각 고유 값의 빈도를 계산한다.
데이터 정렬 및 선택 함수
- sort_values(): 값을 기준으로 정렬한다.
- sort_index(): 인덱스를 기준으로 정렬한다.
- head(): 상위 n개의 행을 반환한다.
- tail(): 하위 n개의 행을 반환한다.
데이터 변환 함수
- map(): 시리즈의 값을 주어진 입력값에 맞게 매핑한다.
- apply(): 시리즈나 데이터프레임의 값에 함수를 적용한다.
- clip(): 값을 지정된 범위 내로 제한한다.
비교 함수
- le(), lt(), ge(), gt(), eq(), ne(): 각각 ‘작거나 같음’, ‘작음’, ‘크거나 같음’, ‘큼’, ‘같음’, ‘다름’을 비교한다.
기타 유용한 함수
- idxmax(): 최댓값의 인덱스를 반환한다.
- between(): 지정된 범위 내의 값을 boolean으로 반환한다.
- is_unique: 모든 값이 고유한지 확인한다.
- tolist(): 값들의 리스트를 반환한다.
이러한 함수들을 활용하면 데이터를 효과적으로 분석하고 조작할 수 있다.
데이터 전처리 예제
- 문자열 데이터 처리: 아래 코드는 문자열 데이터를 숫자로 변환하는 예제이다.
df['item_price'].str.replace('$', '').astype(float)
- str.replace(): 문자열에서 특정 문자를 대체한다.
- astype(float): 문자열 데이터를 실수형으로 변환한다.
실전 문제와 해결 방법
- loc 메서드와 조건 선택위 코드가 작동하지 않는 이유는 reset_index()로 인해 인덱스가 재설정되면서 df['quantity']를 참조할 수 없기 때문이다. 수정된 코드에서는 인덱스를 유지하거나 reset_index()의 결과를 새로운 변수에 저장해야 한다.
- df.reset_index().loc[df['quantity'] == 3].head(5)
- 특정 조건의 데이터 개수 계산
- ~: 조건을 반전시킨다.
- Vegetables가 포함되지 않은 데이터의 개수를 계산한다.
- (~df['choice_description'].str.contains('Vegetables', case=False, na=False)).sum()
- 특정 조건의 데이터 추출
- str.lower(): 문자열을 소문자로 변환한다.
- str.startswith(): 특정 문자로 시작하는 데이터를 필터링한다.
- df[df['item_name'].str.lower().str.startswith('n')]
- 리스트 내 값을 기준으로 데이터 필터링
- isin(): 리스트 lst에 포함된 값을 기준으로 데이터를 필터링한다.
- 이는 Python의 in 연산자와 비슷한 기능을 제공한다.
- df['new_price'].isin(lst)
- 1차원을 2차원으로 변환
- value_counts()의 결과를 데이터프레임으로 변환하여 2차원 형태로 만든다.
- df['host_id'].value_counts().to_frame()
- 열 이름 변경
- rename(): 데이터프레임의 열 이름을 변경한다.
- df['host_id'].value_counts().to_frame().rename(columns={'count': 'cnt'})
데이터 전처리와 분석의 중요성
Pandas의 다양한 함수들을 활용하면 데이터를 정제하고 분석하는 과정을 효율적으로 처리할 수 있다. 이러한 작업은 머신러닝과 데이터 분석의 성공적인 결과를 위한 필수적인 단계이다. 데이터를 제대로 준비하고 적절한 함수들을 활용해 분석의 질을 높여야 한다!
Pandas 문자열 처리: 자주 사용되는 주요 함수 정리
Pandas는 문자열 데이터를 효과적으로 처리할 수 있는 강력한 기능을 제공한다.
문자열 데이터는 데이터 분석 과정에서 자주 등장하며,
이를 효율적으로 처리하기 위해서는 Pandas의 문자열 처리 함수들을 적절히 활용해야 한다.
아래는 Pandas에서 자주 사용되는 문자열 처리 함수들을 정리한 내용이다.
문자열 처리 함수
1. str.lower() / str.upper()
문자열 데이터를 소문자 또는 대문자로 변환한다.
df['column_name'] = df['column_name'].str.lower()
df['column_name'] = df['column_name'].str.upper()
- 사용 예: 데이터의 대소문자가 섞여 있는 경우 정규화를 위해 사용.
2. str.strip() / str.lstrip() / str.rstrip()
문자열의 양쪽, 왼쪽, 또는 오른쪽에서 공백이나 특정 문자를 제거한다.
df['column_name'] = df['column_name'].str.strip()
df['column_name'] = df['column_name'].str.lstrip()
df['column_name'] = df['column_name'].str.rstrip()
- 사용 예: 데이터 전처리 시 공백이나 불필요한 문자 제거.
3. str.replace()
문자열 내 특정 문자를 다른 문자로 대체한다.
df['column_name'] = df['column_name'].str.replace('old', 'new', regex=False)
- 사용 예: 텍스트 데이터의 불필요한 문자나 단어를 수정하거나 교체.
4. str.contains()
문자열이 특정 단어 또는 문자를 포함하는지 여부를 boolean으로 반환한다.
mask = df['column_name'].str.contains('keyword', case=False, na=False)
- 사용 예: 특정 키워드가 포함된 데이터만 필터링할 때 사용.
5. str.startswith() / str.endswith()
문자열이 특정 문자로 시작하거나 끝나는지 여부를 확인한다.
mask_start = df['column_name'].str.startswith('prefix')
mask_end = df['column_name'].str.endswith('suffix')
- 사용 예: 특정 패턴으로 시작하거나 끝나는 데이터를 찾을 때 유용.
6. str.split() / str.rsplit()
문자열을 특정 구분자를 기준으로 나누어 리스트로 반환한다.
df['new_column'] = df['column_name'].str.split('-')
- 사용 예: 복합 문자열을 분리하여 각각의 정보를 나눌 때 사용.
7. str.len()
문자열의 길이를 반환한다.
df['length'] = df['column_name'].str.len()
- 사용 예: 문자열 길이에 따라 데이터를 분석하거나 필터링할 때 유용.
8. str.extract()
정규식을 사용하여 특정 패턴과 일치하는 부분을 추출한다.
df['extracted'] = df['column_name'].str.extract(r'(\d+)')
- 사용 예: 특정 형식(예: 숫자, 날짜)을 추출할 때 사용.
9. str.cat()
문자열을 연결한다.
df['full_name'] = df['first_name'].str.cat(df['last_name'], sep=' ')
- 사용 예: 여러 열의 문자열 데이터를 하나로 결합할 때 유용.
10. str.zfill()
문자열의 길이가 일정하지 않을 때, 문자열 앞에 0을 추가하여 고정된 길이로 맞춘다.
df['padded'] = df['column_name'].str.zfill(5)
- 사용 예: 숫자 데이터를 고정된 자릿수로 표현해야 할 때 사용.
문자열 처리 예제
import pandas as pd
# 예제 데이터프레임 생성
data = {'name': [' Alice ', 'BOB', ' Charlie '],
'info': ['abc-123', 'def-456', 'ghi-789']}
df = pd.DataFrame(data)
# 문자열 데이터 처리
# 1. 공백 제거 및 소문자 변환
df['name'] = df['name'].str.strip().str.lower()
# 2. 문자열 분리
df['info_split'] = df['info'].str.split('-')
# 3. 특정 패턴 추출
df['numbers'] = df['info'].str.extract(r'(\d+)')
print(df)
실행 결과
name info info_split numbers
0 alice abc-123 [abc, 123] 123
1 bob def-456 [def, 456] 456
2 charlie ghi-789 [ghi, 789] 789
문자열 처리의 중요성
Pandas의 문자열 처리 함수들은 데이터 분석에서 자주 사용하는 강력한 도구이다. 데이터를 정제하고 분석 가능한 형태로 변환하기 위해 이러한 함수들을 적절히 활용해야 한다. 문자열 데이터를 효과적으로 다루는 것은 데이터 분석의 기본이자 핵심이다.
'Python > 이론정리' 카테고리의 다른 글
인코딩 vs 스케일링: 데이터 변환의 핵심 이해하기 (0) | 2025.01.30 |
---|---|
회귀 모델 4종 비교: Linear, Logistic, Random Forest, XGBoost (0) | 2025.01.30 |
예측모델 및 분석대회 플랫폼 kaggle (1) | 2025.01.23 |
파이썬: 데이터 분석을 위한 판다스 활용 (3) | 2025.01.22 |
인공지능 시대의 추천 서비스: 데이터가 이끄는 혁신 (2) | 2025.01.16 |