목차
반응형
데이터프레임에 데이터를 다 넣고 보니.. 순서가 꼬일 때가 간혹 있습니다.
이럴 때, 순서를 바꿔야겠다 생각할 수도 있으나, 지우고 새로 추가해야겠다라고 생각할 수도 있습니다.
한두개 열만 조정해도 된다면 insert를 사용하면 편합니다.
df.insert(열의 위치(loc), 열 이름(label), 열에 들어갈 값들(values))
import pandas as pd
# 예시 데이터프레임 생성
data = {
'date': ['2024-07-22', '2024-07-23', '2024-07-24'],
'value': [10, 20, 30]
}
df_daily = pd.DataFrame(data)
# 'date' 열을 datetime 형식으로 변환
df_daily['date'] = pd.to_datetime(df_daily['date'])
# '주_시작일' 열을 생성하여 해당 주의 월요일 날짜로 변환
df_daily['주_시작일'] = df_daily['date'] - pd.to_timedelta(df_daily['date'].dt.weekday, unit='d')
df_daily
# 두 번째 열에 '주_시작일'을 추가
df_daily.insert(1, '주_시작일', df_daily.pop('주_시작일'))
df_daily
열의 위치는 0부터 시작합니다. 그래서 두번째 열에 추가하려면 1이라고 적어야 합니다.
df_daily.insert(1, '주_시작일', df_daily.pop('주_시작일'))를 해석해보면
df_daily라는 데이터프레임의 두번째 열에 '주_시작일'이라는 이름의 열을 넣어줘.
해당 열의 값들은 기존에 있던 주_시작일 열을 지우면서 그 안에 있던 데이터를 넣을게라는 의미가 됩니다.
기존에 있는 열과 값들을 그대로 사용하고 싶을 때, df.pop('열 이름') 사용하면 되겠습니다.
열 위치는 index 번호인데, 이 index 번호는 직접 숫자를 지정하는 것도 방법이지만
index값을 가져오는 방법도 가능합니다.
# 두 번째 열에 '주_시작일'을 추가
df_daily.insert(df_daily.columns.get_loc('value'), '주_시작일', df_daily.pop('주_시작일'))
df_daily
이때는 '주_시작일' 열이 'value' 열 앞에 있으면 좋겠다. 이런 식으로 생각하면 편할 것 같습니다. 결과는 아래처럼 똑같습니다.
열 순서 직접 지정하기
이외에 진짜 심플한 경우에는 열 순서 직접 지정하기가 더 편리하기도 합니다.
아래처럼 열 이름을 담은 리스트의 순서만 바꿔적는겁니다.
df_daily[['date','주_시작일','value']]
반응형
'파이썬 > 파이썬 궁금증 회고' 카테고리의 다른 글
파이썬 pandas - 데이터프레임에서 결측된 값, 결측된 행 찾기 (0) | 2024.07.23 |
---|---|
파이썬 concat - 특정 경로 내 CSV 파일들을 하나의 DF로 합치기(병합하기) (0) | 2024.07.22 |
아나콘다 가상환경에서 파이썬 라이브러리 설치 안될 때 (0) | 2023.10.17 |
.py와 .ipynb에서 같은 파일 사용하기(같은 파일 경로 사용하기), 다른 컴퓨터에서 같은 파일 사용하기 (0) | 2023.05.12 |
파이썬 SettingWithCopyWarning과 FutureWarning 해결하기: Pandas DataFrame에서 .copy() 사용 및 numeric_only 지정 (0) | 2023.04.18 |
댓글