2022년 12월 8일 목요일

오렌지(orange)에서 판다스(pandas) 날자데이터 변환

 0. 유튜브에 있는 kaggle의 바이크 쉐어링 디멘드를 오렌지로 따라하다가 datetime 형식을 year month day hour 로 별도 컬럼으로 생성하다가 어려움에 처했는데 Python Script로 해결하였습니다.

1. 혹시 다른분들에게 도움이 될수 있을가하여 정리하였습니다.

2. 위에 있는 링크를 따라가서 train.csv 데이터를 받아왔습니다. 오렌지를 열고 아래와 같이 위젯을 배치합니다.


3. File 위젯을 선택하여 다운 받은 trans.csv를 읽어들입니다.


   datetime 의 type이 datetime 임을 확인합니다.

4. 파이썬스크립트를 열고 아래의 내용을 복사하여 붙여넣기 하고 실행합니다(RUN)

import pandas as pd
from Orange.data.pandas_compat import table_from_frame, table_to_frame
df = table_to_frame(in_data)

df['Year'] = df['datetime'].dt.year
df['month'] = df['datetime'].dt.month
df['day'] = df['datetime'].dt.day

out_data = table_from_frame(df)

5. Data Table(2) 위젯을 선택하여 Year month day 컬럼이 정상으로 형성되었슴을 확인합니다.


6. Edit Domain 위젯을 선택하여 Year, month, day의 type을 Catagorical로 바꾸어 줍니다.


7. Pivot Table 위젯을 섵택하여 연도별 월별 데이터로 카운트를 변환합니다.


8. Line Plot 위젯을 선택하여 2011년과 2012년의 카운트를 확인합니다. 겨울철에는 확실히 줄어드었네요. 또한 2012년은 2011년에 바하여 일정한 크기로 증가했습니다. 또 확인 할 수 있는 것은 2012년7월은 그래프가 꺽어졌네요. 아마 너무 더워서였을 것이라는 생각입니다.


9. 오렌지에서 데이터 전처리는 Python Script 에서 table_to_frame()로 불러온다음  판다스(Pandas)를 이용하여 처리하고  table_from_frame()으로 내보내면 됩니다. 에전에는 Orange.data.pandas_compat 를 사용하였는데 Pandas를 import하여 처리하고 입출력만 

from Orange.data.pandas_compat import table_from_frame, table_to_frame

을 이용하는 것으로 바꾸었습니다,

Orange.data.pandas_compat 에서는 dt.year 변환이 되지 않아요.

댓글 없음:

tensorflow gpu 사용하기에서

 tensorflow 설치시 주의해야 한다. # Anything above 2.10 is not supported on the GPU on Windows Native python - m pip install "tensorflow<2.11...