728x90
반응형
SMALL
안녕하세요. 이번 포스팅에서는 데이터프레임에서 등수 매기기와 날짜 타입 다루기, apply와 map 메소드에 대해서 다루고, 마지막으로 One Hot Encoding 방법을 알아보겠습니다.
데이터프레임에서 등수 매기기
- pandas.rank(): 데이터 프레임에서 등수를 매기는 함수입니다. ascending 옵션을 이용해서 오름차순이나 내림차순으로 등수를 매길 수 있습니다. 순위를 매긴 뒤, astype() 메소드를 이용해서 int 형으로 변경해주어야 합니다.
python
# 브랜드평판지수를 기준으로 등수 매기기
df1['브랜드순위'] = df1['브랜드평판지수'].rank(ascending=False)
df1['브랜드순위'] = df1['브랜드순위'].astype('int')
날짜 타입 다루기
- pandas.to_datetime(): 데이터 프레임에서 날짜를 처리하기 위한 함수입니다. 기존의 object 타입에서 datetime 타입으로 변환합니다. 이후, dt 속성을 이용하여 각 날짜 변수를 사용할 수 있습니다.
python
# 생년월일을 datetime 타입으로 변환
df['생년월일'] = pd.to_datetime(df['생년월일'])
# dt 속성을 이용해 생년월일의 년, 월, 일, 요일, 해당 연도의 몇번째 주인지 등을 알아볼 수 있습니다.
df['생년월일'].dt.year
df['생년월일'].dt.month
df['생년월일'].dt.day
df['생년월일'].dt.dayofweek
df['생년월일'].dt.isocalendar().week
apply 메소드
- apply() 메소드는 특정 함수를 실행시켜 결과를 반환하는 함수입니다. DataFrame 혹은 Series에서 apply() 메소드를 호출하면, 첫 번째 인수로 전달된 함수를 시리즈의 각 요소에 적용하여 반환합니다. 이 때 input으로는 람다 함수 혹은 일반 함수가 들어갈 수 있습니다.
python
# 성별을 1, 0으로 변환하는 일반 함수
def male_or_female(x):
if x =='남자':
return 1
elif x == '여자':
return 0
# apply를 이용해 성별 데이터 변환하기
df['new성별'] = df['성별'].apply(male_or_female)
# apply와 람다 함수를 이용한 코드 (한 줄로 작성 가능)
df['new성별'] = df['성별'].apply(lambda x: 1 if x == '남자' else 0)
map 메소드
- map() 메소드 역시 apply와 비슷한 함수입니다. 입력값이 Series일 때, 해당 Series안의 요소들을 인자로 전달하는 함수를 적용하여 결과를 출력합니다. map()은 딕셔너리 형태로 각 범주에 대한 처리 방법을 입력할 수 있기 때문에 매우 간편합니다.
python
# 딕셔너리를 활용한 map() 예시
blood_map = { "A": 0, 'B': 1, 'AB':2, "O": 3}
df['혈액형_code'] = df['혈액형'].map(blood_map)
One Hot Encoding
- One Hot Encoding(원 핫 인코딩)은 데이터프레임의 카테고리 변수를 더미 변수(Dummy Variable)로 변환하는 방법입니다. 이 방법은 머신닝 알고리즘에서 범주형 변수를 처리하기 위해 사용됩니다.
python
# pd.get_dummies()를 이용한 one hot encoding 기능
# 분류해야 할 범위를 선택하고 해당 범위를 인자로 전달하면 원하는 더미 인코딩 값을 생성해줍니다.
.get_dummies(df['혈액형_code'])
# columns 인자를 이용해서 새 칼럼 이름을 지정하여 더미 인코딩 값을 가져올 수 있습니다.
df_one_hot = pd.get_dummies(df, columns=['혈액형_code'])
이번 포스팅에서는 데이터프레임에서수 매기기, 날짜 타입 다루기, apply와 map 메소드, 그리고 One Hot Encoding 방법에 대해서 다뤄봤습니다.
728x90
반응형
LIST
'데이터분석' 카테고리의 다른 글
자연어 처리를 위한 기본적인 이해와 활용 (Feat. KoNLPy) (0) | 2023.06.08 |
---|---|
Matplotlib 라이브러리를 사용한 시각화 (0) | 2023.06.08 |
Pandas 데이터프레임 합치기 (0) | 2023.06.08 |
Pandas 중복값 제거 (0) | 2023.06.08 |
Pandas를 이용한 통계값 다루기, 그룹으로 묶기 (0) | 2023.06.08 |