이 블로그에서는 DataFrame의 기본적인 사용법에 대하여 설명합니다.
데이터 선택
DataFrame 의 데이터는 테이블처럼 열과 행으로 구성되어 있습니다. 그래서 아래와 같은 방법으로 각 데이터에 접근합니다.
- 열 선택: df['column_name'] 또는 df.column_name.
- 여러 열 선택: df[['col1', 'col2']].
- 행 선택: df.iloc[index] (정수 인덱스 사용), df.loc[label] (레이블 사용)
import pandas as pd
# 예제 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'San Francisco', 'Los Angeles']
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])
print(df)
#출력
Name Age City
a Alice 25 New York
b Bob 30 San Francisco
c Charlie 35 Los Angeles
print(df)
# 특정 열 선택
print(df['Name'])
# 특정 행 선택
print(df.iloc[0])
print(df.loc['a'])
데이터 필터링
특정 조건을 만족하는 데이터는 아래와 같이 조건식을 사용해 원하는 행이나 열을 추출할 수 있습니다.
# 조건을 만족하는 행 필터링
filtered_df = df[df['Age'] > 30]
print(filtered_df)
데이터 변형
- df.sort_values(by='column', ascending=True): 특정 열 기준으로 정렬.
- df.apply(func): 함수 적용.
- df.rename(columns={'old_name': 'new_name'}): 열 이름 변경.
df['Age'] = df['Age'] + 1 # 나이에 1씩 더하기
df = df.rename(columns={'Name': 'Full Name'})
데이터 그룹화
- df.groupby('column'): 특정 열 기준으로 그룹화.
- df.groupby('column').agg(func): 그룹별 집계 수행.
grouped = df.groupby('City')['Age'].mean()
print(grouped)
결측값 (Missing Value) 처리
- df.isnull(): 결측값 여부 확인.
- df.dropna(): 결측값이 있는 행 제거.
- df.fillna(value): 결측값을 특정 값으로 대체.
df['Age'].fillna(df['Age'].mean(), inplace=True) #inplace=True 는 출력데이터 뿐아니라 원본 데이터를 변경합니다.
pandas의 DataFrame은 데이터 조작과 분석을 강력하고 효율적으로 수행할 수 있는 도구입니다. 다양한 정의 방법과 메서드를 통해 복잡한 데이터 처리도 간단히 수행할 수 있습니다. pandas를 잘 활용하면 데이터 기반 의사결정을 훨씬 쉽게 내릴 수 있습니다.