pandas를 사용하던 중 정렬 코드가 각기 다르게 사용된 코드를 보았다.
결국 reset_index()가 먼저인가 sort_values()가 먼저인가의 차이이며,
사용 중 주의해야 할것 같아 예시를 만들어 본다.
물론 index를 지정하지 않았어도 결과는 같다.
import pandas as pd
data = {
'age': [25, 30, 27],
'city': ['Seoul', 'Busan', 'Daegu']
}
df = pd.DataFrame(data)
df.set_index('city', inplace=True)
print(df)
"""
age
city
Seoul 25
Busan 30
Daegu 27
"""
# 정렬 후 기존 인덱스 삭제
result_1 = df.sort_values('age', ascending=False).reset_index(drop=True)
# 기존 인덱스 삭제 후 정렬
result_2 = df.reset_index(drop=True).sort_values('age', ascending=False)
print("\n츨력결과")
print(result_1)
"""
츨력결과
age
0 30
1 27
2 25
"""
print("\n출력결과")
print(result_2)
"""
출력결과
age
1 30
2 27
0 25
"""
loc와 iloc 사용에 있다.
많은 사람들은 index를 지정하지 않고 사용한다.
loc[0] <= index가 숫자 0인 열을 호출
iloc[0] <= iloc로 순서가 0인 열을 호출
코드로 확인해보자.
print(result_1.loc[0])
# age 30
print(result_1.iloc[0])
# age 30
print(result_2.loc[0])
# age 25
print(result_2.iloc[0])
# age 30
사실 한편으론 loc, iloc의 동작원리를 이해하는것, 메서드 리턴값을 한번씩 들여보는것이 더 중요할 수도 있다.