예제
import pandas as pd
data1 = {'Grade': ['AAA', 'C', 'BB', 'AA', 'BBB', 'A'],
'Value': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data1)
df
정렬 문제
AAA → AA → A → BBB순으로 정렬하기
먼저 첫 글자로 정렬하고, 동일할 때 문자의 길이로 정렬을 수행합니다.
sort_values 함수의 매개변수 key를 활용합니다.
out = df.sort_values(
'Grade', key=lambda x: [(i[0], -len(i)) for i in x]
)
out:
혹은 Grade 열에 판다스의 문자열 함수를 적용해 두 개의 시리즈를 생성한 다음 zip 함수로 묶을 수도 있습니다.
out = df.sort_values(
'Grade', key=lambda x: list(zip(x.str[0], x.str.len().mul(-1)))
)
같은 결과를 반환합니다.
교보문고 구매 페이지, 알라딘 구매 페이지, yes24 구매 페이지
'판다스 > 판다스 팁' 카테고리의 다른 글
[pandas] 날짜가 속한 분기의 마지막 날 구하기 (0) | 2024.03.30 |
---|---|
[pandas] 정렬시 매개 변수 key에 열마다 다른 함수 할당하기 (0) | 2024.03.29 |
[pandas] 특정 대상만 끌어 올려 정렬하기 (0) | 2024.03.28 |
[pandas] 정해진 임의 순서로 정렬 하기 (0) | 2024.03.28 |
[pandsa] NaN 위치에 데이터를 끌어 올리는 방법 (0) | 2024.03.19 |