개발은 처음이라 개발새발

파이썬 열 순서 변경[python/pandas] 본문

파이썬

파이썬 열 순서 변경[python/pandas]

leon_choi 2022. 8. 15. 08:00
반응형

안녕하세요, 이번에는 판다스에서 열의 순서를 변경하는 것에 대해 알아보도록하겠습니다. 이번 시간 예제는 seaborn에서 제공하는 타이타닉 데이터를 가지고 진행하겠습니다. 우선적으로 컬럼을 순서를 변경하는 데 있어 필요한 것은 컬럼의 리스트를 만드는 것입니다.그렇다면 컬럼 리스트를 만드는 것까지 코딩을 진행해보겠습니다.

import seaborn as sns

titanic = sns.load_dataset('titanic')

df = titanic.loc[0:4,'survived':'age']

print(df,'\n')

#컬럼 리스트 만들기
columns = list(df.columns)
print(columns,'\n')
survived  pclass     sex   age
0         0       3    male  22.0
1         1       1  female  38.0
2         1       3  female  26.0
3         1       1  female  35.0
4         0       3    male  35.0 

['survived', 'pclass', 'sex', 'age']

네 이렇게 컬럼 리스트까지 만들었습니다. 이제 컬럼 순서를 결정하는 함수를 알아봐야 하는데요. 컬럼들의 순서를 변겅할 때는 sorted()함수를 사용합니다. sorted()함수 사용 시 기본적으로 열 이름은 알파벳 순으로 정렬됩니다. 

# 컬럼 알파벳 순으로 정렬하기
columns_sorted = sorted(columns)
df_sorted = df[columns_sorted]

print(df_sorted,'\n')
    age  pclass     sex  survived
0  22.0       3    male         0
1  38.0       1  female         1
2  26.0       3  female         1
3  35.0       1  female         1
4  35.0       3    male         0

그렇다면 알파벳의 역순으로 하고 싶으면 어떻게 할까요? 그럴 땐 sorted() 함수 안에 reverse= 매소드를 사용해 역순으로 만들 수 있습니다. 

# 컬럼 알파벳 역순으로 정렬하기
columns_reverse = sorted(columns, reverse=True)
df_reverse = df[columns_reverse]

print(df_reverse,'\n')
  survived     sex  pclass   age
0         0    male       3  22.0
1         1  female       1  38.0
2         1  female       3  26.0
3         1  female       1  35.0
4         0    male       3  35.0

그렇다면 본인이 원하는대로도 커스텀이 가능한지도 확인해볼까요? 이때는 변수에 본인이 원하는 컬럼을 직접 리스트화에 변경할 수 있습니다. 

# 컬럼 커스텀 
columns_custom = ['pclass','sex','age', 'survived']
df_custom = df[columns_custom]

print(df_custom)
  pclass     sex   age  survived
0       3    male  22.0         0
1       1  female  38.0         1
2       3  female  26.0         1
3       1  female  35.0         1
4       3    male  35.0         0

컬럼 커스텀 코드를 좀 더 짧게 하자면 굳이 변수를 만들지 않고 df[['pclass','sex','age', 'survived']]로 df[]안에 직접 넣는 것이 좀 더 간편한 코드가 될 수 있습니다. 다음에는 필터링에 대해서 알아보도록 하겠습니다. 

반응형