농산물 가격 예측 전처리하기

오영선·2021년 10월 5일
0

data도전

목록 보기
1/1

참가하려고했더니 public기간이 끝났더라고..그래서 데이터들로 데이터간 상관관계 분석하는 실습해보기

참고데이터 : DACON 2021농산물 가격예측 AI 경진대회

import os 
import io 
import zipfile 
from zipfile import ZipFile 
import pandas as pd 
import requests 
import numpy as np
from glob import glob
import multiprocessing
import pickle


with ZipFile('235801_2021 농산물 가격예측 AI 경진대회.zip', 'r') as zipObj: 
    zipObj.extractall('DATA') 
    
labels = pd.read_csv('DATA/public_data/train.csv')
labels
# 데이터불러오기

데이터를 보니까 0값이 있는(거래가 없는) 날도 있고 요일별로 품목이 다 안보인다.

print(labels.isnull().sum()) #빈 값 없음. 그러나 거래량에 0인 항목은 있음.

print("number of data :",len(labels)) # 전체 데이터 개수
# number of data : 1733
# 품목이 많아서 배추만 간략하게 살펴보기
beachu = labels[["date","요일","배추_거래량(kg)","배추_가격(원/kg)"]]

index = beachu[beachu["배추_거래량(kg)"]==0.0].index
# 0.0값을 지워준다. 
beachu2 = beachu.drop(index)
beachu2

beachu2[['요일', '배추_거래량(kg)']].groupby(['요일'], 
                                      as_index=False).mean().sort_values(by='배추_거래량(kg)',
                                      ascending=False)

beachu2[["배추_거래량(kg)", "배추_가격(원/kg)"]].groupby(["배추_거래량(kg)"], 
                                               as_index=False).mean().sort_values(by="배추_가격(원/kg)",
                                                                                 ascending=False)

그런데 난 년, 월, 일별로 거래량과 가격을 보고싶어서 날짜를 분리해주었다.


import datetime
beachu2["date"] = pd.to_datetime(beachu2["date"])

beachu2['Year'] = beachu2['date'].dt.year 
beachu2['Month'] =beachu2['date'].dt.month 
beachu2['day'] =beachu2['date'].dt.day 
beachu2

년도별 배추 가격 및 거래량(코드 생략)

월별

일별은 출력결과 큰 의미가 없을 것 같아 무시하기로 했다.

얻은 결과는 다음과 같다.

  1. 월>화>금>수 ... 순으로 거래량이 많다.
  2. 거래량이 많을수록 배추의 가격은 낮아진다.
  3. 배추의 가격상승은 년도로는 알 수 없다. 아마 한 해 수확량과 비교해봐야할것같다. 거래량은 해가 갈수록 낮아지는 경향이다. (2016년의 값이 독특해보이는데 찾아보니 이때 배추값이 금값이었다고 한다.)
  4. 월 별로는 11>12>9>10월에 가장 많이 팔리고, 가격은 9>8>2>10 순으로 비싸다. 아마 김장철이라 그런 게 아닐까?

0개의 댓글