알파벳 정렬 기준은 보통 A-Z → a-z 순으로 진행된다.

아스키 코드를 보면 소문자가 대문자보다 값이 크기 때문이다.
실제로도 그런지 확인해 보자.
예시)과일정보가 있는데 대소문자가 뒤죽박죽일때
basket =['apple','Banana','Cherry','durian']
basket_series = pd.Series(basket)
basket_series.sort_values()
과일 리스트를 가지고 있는 basket_series라는 Series를 생성 후 오름차순 해주었다.

결과값에서는 대문자가 먼저 보이는 것을 확인할 수 있다.
우리가 원하는 오름차순은 apple이 먼저였다. 그렇다면 해결 방법은 무엇이 있을까?
basket_series.str.lower().sort_values()

하지만 해당 코드는 값이 변경되는 이슈가 발생한다.
이때 값이 변경되지 않도록 하기 위해서는
sort_values 의 인자값에 key= 와 lambda를 활용하여 진행할 수 있다.
basket_series.sort_values(key = lambda x : x.str.lower())

key = lambda x : x에는 Series가 들어올 것이다.
x.str.lower() : x에 들어온 Series들을 각 각 str.lower() 해준다.
이후 해당 값을 기준으로 오름차순 진행.
문제! 이름 길이 순으로 정렬해보자.
나의 풀이)
rich_set.str.len().sort_values(ascending=False)

엇 근데 이렇게 풀면 기존 값이 안보인다..
이전에 배웠던 인자 key=lambda를 사용해서 진행해보자.
rich_set.sort_values(key=lambda x : x.str.len(),ascending = False)

GOOD!
key = lambda는 for문에서 각 데이터를 하나하나 수행하는 것과 비슷한 역할을 한다.
arr = [(0,10),(1,14),(2,2),(3,10)] #1줄
new_arr = max(arr, key=lambda x : x[1]) #2줄
1줄 : arr이라는 튜플로 이루어진 리스트들이 있다.
2줄 :
key=lambda x x로 arr의 리스트를 읽어온다.
: x[1] x의 인덱스 1번을 기준으로 가져옴
즉, 해당 코드는 arr의 튜플 중 인덱스 1번에 해당하는 각 각의 숫자들 중 max값을 가져오는 것이다.

출력값은 가장 큰 인덱스 1번 튜플의 14가 출력 됨.