[Python] νμ΄μ¬ νλ€μ€(Pandas) - λ°μ΄ν° μ λ ¬ sort_value(), sort_index()λ©μλ
νλ€μ€μμ λ°μ΄ν°νλ μμ μ λ ¬νλ λ°μλ sort_values()μ sort_index()λΌλ λ κ°μ§ λ©μλκ° μλ€. κ°κ°μ λ©μλλ λ€μν μ λ ¬ μ΅μ μ μ κ³΅ν΄ λ°μ΄ν°λ₯Ό μνλ λλ‘ μ λ ¬ν μ μλ€.
μλμ λ°μ΄ν°λ‘ λ κ°μ§ λ©μλλ₯Ό νμΈν΄λ³΄μ.
>> df = pd.DataFrame({'Employee ID':[111, 222, 333, 444],
'Employee Name':['Chanel', 'Steve', 'Mitch', 'Bird'],
'Salary [$/h]':[35, 29, 38, 20],
'Years of Experience':[3, 4 ,9, 1]})
>> df
sort_values() μ¬μ©νκΈ°
μ΄ λ©μλλ λ°μ΄ν°νλ μμ νΉμ μ΄(column)μ κ°μ κΈ°μ€μΌλ‘ μ λ ¬ν λ μ¬μ©λλ€. μ£Όλ‘ by λ§€κ°λ³μλ₯Ό νμ©ν΄ μ λ ¬ κΈ°μ€μ΄ λλ μ΄μ μ νν μ μλ€.
- by: μ λ ¬ν κΈ°μ€μ΄ λλ μ΄(column)μ μ΄λ¦μ λνλ΄λ λ§€κ°λ³μμλ€. 리μ€νΈλ‘ μ¬λ¬ μ΄μ μ§μ ν μλ μλ€.
- ascending: μ λ ¬ λ°©μμ κ²°μ νλλ°, κΈ°λ³Έκ°μ Trueλ‘ μ€λ¦μ°¨μμ΄κ³ , Falseλ‘ μ€μ νλ©΄ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬λλ€.
- ignore_index: κΈ°λ³Έκ°μ Falseλ‘, Trueλ‘ μ€μ νλ©΄ μλ‘μ΄ μΈλ±μ€λ₯Ό μμ±ν΄μ€λ€.
μ λ°μ΄ν°μμ κ²½λ ₯μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νλ€.
>> df['Years of Experience'].sort_values() # 컬λΌλ§ μ λ ¬
3 1
0 3
1 4
2 9
Name: Years of Experience, dtype: int64
κ·Έλ¦¬κ³ ν μ 체λ₯Ό νΉμ μ»¬λΌ κΈ°μ€μΌλ‘ μ λ ¬νλ€.
>> df.sort_values('Years of Experience')
κ²½λ ₯μ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νλ€.
>> df.sort_values('Years of Experience', ascending= False)
length 컬λΌμ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νλ€.
>> df.sort_values('length', ascending= False)
μ λ ¬ μ‘°κ±΄μ΄ μ¬λ¬ κ°μΌ λλ sort_values ν¨μμ 리μ€νΈλ‘ μ¬λ¬ 컬λΌμ λ£μ΄ μ λ ¬ν μ μλ€.
lengthλ₯Ό λ΄λ¦ΌνμμΌλ‘ μ λ ¬νλ, μ«μκ° κ°μΌλ©΄, μ΄λ¦μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νλ€.
>> df.sort_values(['length','Employee Name'],ascending=[False,True])
sort_index() μ¬μ©νκΈ°
μ΄ λ©μλλ μΈλ±μ€λ₯Ό κΈ°μ€μΌλ‘ λ°μ΄ν°νλ μμ μ λ ¬ν λ μ¬μ©λλ€.. μ£Όλ‘ λ°μ΄ν°νλ μμ μΈλ±μ€μ λ°λΌ μ λ ¬ν λ μ μ©νλ€. λͺ κ°μ§ μ€μν λ§€κ°λ³μλ μλμ κ°λ€.
- axis: κΈ°λ³Έκ°μ 0μΌλ‘ ν(row)μ κΈ°μ€μΌλ‘ μ λ ¬νλ κ²μ΄κ³ , 1λ‘ μ€μ νλ©΄ μ΄(column)μ κΈ°μ€μΌλ‘ μ λ ¬ν΄.
- ascending: μ λ ¬ λ°©μμ κ²°μ νλλ°, κΈ°λ³Έκ°μ Trueλ‘ μ€λ¦μ°¨μμ΄κ³ , Falseλ‘ μ€μ νλ©΄ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬λΌ.
λ¨Όμ μμ μΈλ±μ€κ° μ λ ¬λμ§ μμ sort_values ν¨μλ₯Ό μ μ©ν λ°μ΄ν° νλ μμ λ³μμ λ£λλ€.
κ·Έλ¦¬κ³ μλ‘μ΄ λ³μμ sort_index()μ μ©νλ€. μ΄λ ascending μμ±μ False κ°μ μ£Όμ΄ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νλ€.
>> df2=df.sort_values(['length','Employee Name'],ascending=[False,True])
>> df2.sort_index(ascending=[False])