개발은 처음이라 개발새발

파이썬 열 분리 [python/pandas] 본문

파이썬/판다스

파이썬 열 분리 [python/pandas]

leon_choi 2022. 8. 20. 20:57
반응형

하나의 열이 여러가지 정보를 가지고 잇을 때 각 정보를 서로 분리해서 사용하는 경우가 있는데요. 그중에서 대표적인 것이 날짜 정보겠죠. 예를 들어 날짜라는 컬럼 안에 "2022-08-20" 이라는 정보가 담겨 있다면 날짜라는 컬럼에 연도, 월, 일 총 3가지의 정보가 담겨 있는 것입니다. 이름 같은 경우도 성과 이름을 모두 담고 있기 때문에 좀 더 데이터를 세분화해 다루기 위해서는 이를 분리해 구분하는 것이 좋습니다. 이번 시간에는 주가데이터 예제를 통해서 코딩을 진행해보겠습니다.

import pandas as pd

#데이터셋 가져오기
df = pd.read_excel('./주가데이터.xlsx')

print(df.head(),'\n')
print(df.dtypes,'\n')

#연,월,일 데이터 분리하기
df['연월일'] = df['연월일'].astype('str') #문자열 매소드 사용을 위해 자료형 변경
dates = df['연월일'].str.split('-') #문자열 split() 매소드로 분리

print(dates.head(),'\n')
         연월일   당일종가  전일종가     시가     고가     저가     거래량
0 2018-07-02  10100   600  10850  10900  10000  137977
1 2018-06-29  10700   300  10550  10900   9990  170253
2 2018-06-28  10400   500  10900  10950  10150  155769
3 2018-06-27  10900   100  10800  11050  10500  133548
4 2018-06-26  10800   350  10900  11000  10700   63039 

연월일     datetime64[ns]
당일종가             int64
전일종가             int64
시가               int64
고가               int64
저가               int64
거래량              int64
dtype: object

0    [2018, 07, 02]
1    [2018, 06, 29]
2    [2018, 06, 28]
3    [2018, 06, 27]
4    [2018, 06, 26]
Name: 연월일, dtype: object

datetime으로 저장된 연원일을 문자열로 변환후 .split()매소드를 통해 연도, 월, 일 3개의 데이터로 분리 후 dates 변수에 저장했습니다. 마지막 결과를 보면 리스트 형식으로 들어가 있는 것을 확인할 수 있습니다. 자 이제 분리한 것을 get()매소드를 활용해 3개의 데이터를 다른 컬럼에 넣어보도록 하겠습니다. 

#분리된 정보를 각각 새로운 열에 담아 추가하기
df['연'] = dates.str.get(0)
df['월'] = dates.str.get(1)
df['일'] = dates.str.get(2)

print(df.head())
   연월일   당일종가  전일종가     시가     고가     저가     거래량     연   월   일
0  2018-07-02  10100   600  10850  10900  10000  137977  2018  07  02
1  2018-06-29  10700   300  10550  10900   9990  170253  2018  06  29
2  2018-06-28  10400   500  10900  10950  10150  155769  2018  06  28
3  2018-06-27  10900   100  10800  11050  10500  133548  2018  06  27
4  2018-06-26  10800   350  10900  11000  10700   63039  2018  06  26

네 이렇게 분리된 데이터를 컬럼을 추가해 넣어봤습니다. 물론 날짜의 경우 시계열 데이터를 통해서도 분리할 수 있지만 이와 같은 방법으로도 분리가 가능하다는 걸 확인해봤습니다. 다음 시간에는 두개 데이터프레임을 합치는 거에 대해 알아보도록 하겠습니다.  

반응형