[판다스(Pandas)]데이터 정렬 & 함수 적용-컬럼, 인덱스 기준 정렬, ascending, apply()를 통한 함수적용

Jihwan Jung·2022년 10월 11일
1

🐼판다스

목록 보기
10/12
post-thumbnail
post-custom-banner

💡오늘 배울 내용


컬럼 혹은 인덱스를 기준으로 하는 데이터 정렬과 apply()를 통한 데이터에 함수를 적용하는 방법을 알아봅시다.

🔎데이터 정렬


인덱스와 컬럼을 기준으로 데이터를 정렬하면, 더 편하게 데이터를 확인할 수 있습니다.

🔔데이터 불러오기


import pandas as pd
import numpy as np
data = {
    '이름' : ['유재석', '박명수', '정준하', '노홍철', '정형돈', '하하'],
    '지역' : ['서울', '부산', '부산', '서울', '서울', '서울'],
    '나이' : [19, 23, 20, 25, 18, 21],
    '국어점수' : [86, 90, 80, 65, 50, 60],
    '수학점수' : [86, 100, 66, 70, 40, 80],
    '코딩' : ['Python', 'Java', np.nan, 'Javascript', 'PYTHON', np.nan]
}
df = pd.DataFrame(data, index=['1번', '2번', '3번', '4번', '5번', '6번'])
df.index.name = '번호'

🔔인덱스 기준


sort_index() 메서드를 통해 인덱스를 기준으로 자료를 정렬해봅시다. ascending 옵션을 조절하지 않으면 오름차순 정렬이 default입니다. 또한 inplace=True옵션을 통해 변경사항을 고정할 수 있습니다.

내림차순 정렬을 하고싶다면, 옵션에 ascending=False를 지정할 수 있습니다.

#오름차순 정렬
df.sort_index()

#내림차순 정렬
df.sort_index(ascending=False)

🔔컬럼 기준


sort_values() 메서드를 통해 컬럼을 기준으로 자료를 정렬할 수 있습니다. ascending 옵션을 조절하지 않으면 오름차순 정렬이 default입니다. 또한 inplace=True옵션을 통해 변경사항을 고정할 수 있습니다.

#오름차순 정렬
df.sort_values('나이')

#내림차순 정렬
df.sort_values('나이', ascending=False)


컬럼 두가지를 기준으로 정렬할 수 있습니다. 첫번째 기준으로 정렬하되, 같을 경우 두번째의 기준을 사용합니다.

df.sort_values(['지역', '국어점수'])

오름차순과 내림차순을 각각 지정하는 것도 가능합니다.

#지역은 오름차순, 국어점수는 내림차순으로
df.sort_values(['지역', '국어점수'], ascending=[True, False])


하나의 데이터를 정렬하여 보고싶다면, 특정 컬럼을 시리즈로 불러와 정렬할 수도 있습니다.

df['수학점수'].sort_values()

🔎함수 적용 - apply


데이터 전처리 과정에서 특정 열이나 행을 변환해야 할 때가 있습니다. apply() 함수를 데이터를 적용해봅시다.

'나이' 열에 정수로 적힌 자료들을 '19살'처럼 출력하고 싶다면, 함수를 적용할 수 있습니다. 나이 뒤에 문자열 '살'을 붙이는 함수를 만들고, apply()를 통해 적용하면 됩니다.

def add_s(age):
    return str(age) + '살'

df['나이'] = df['나이'].apply(add_s)
df


상단의 코드는 데이터의 '나이' 컬럼에 함수를 적용하고, 그 결과를 다시 df['나이']에 바인딩해줌으로써 새로운 데이터프레임을 만듭니다.

profile
22.10月~24.07月 공군 암호병 복무중/ 사회 과학과 딥 러닝에 관심이 있는 학부생(CS&E)입니다. 기술과 사회에 대한 이해를 바탕으로, 비즈니스 감각과 기술적 역량을 함께 갖춘 인공지능 프로그래머•데이터 과학자로 성장하고 싶습니다.
post-custom-banner

0개의 댓글