반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


 

 

 

In [1]:
#라이브러리 불러오기
import pandas as pd
import os
In [2]:
#기상데이터 read
기상데이터_2003 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2003년 기상데이터.csv', encoding="CP949")
기상데이터_2004 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2004년 기상데이터.csv', encoding="CP949")
기상데이터_2005 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2005년 기상데이터.csv', encoding="CP949")
기상데이터_2006 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2006년 기상데이터.csv', encoding="CP949")
기상데이터_2007 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2007년 기상데이터.csv', encoding="CP949")
기상데이터_2008 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2008년 기상데이터.csv', encoding="CP949")
기상데이터_2009 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2009년 기상데이터.csv', encoding="CP949")
기상데이터_2010 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2010년 기상데이터.csv', encoding="CP949")
기상데이터_2011 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2011년 기상데이터.csv', encoding="CP949")
기상데이터_2012 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2012년 기상데이터.csv', encoding="CP949")
기상데이터_2013 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2013년 기상데이터.csv', encoding="CP949")
기상데이터_2014 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2014년 기상데이터.csv', encoding="CP949")
기상데이터_2015 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2015년 기상데이터.csv', encoding="CP949")
기상데이터_2016 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2016년 기상데이터.csv', encoding="CP949")
기상데이터_2017 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2017년 기상데이터.csv', encoding="CP949")
기상데이터_2018 = pd.read_csv('C:/Users/User/Desktop/AI data/기상데이터/2018년 기상데이터.csv', encoding="CP949")
 
C:\Users\User\anaconda3\lib\site-packages\IPython\core\interactiveshell.py:3071: DtypeWarning: Columns (60) have mixed types.Specify dtype option on import or set low_memory=False.
  has_raised = await self.run_ast_nodes(code_ast.body, cell_name,
In [3]:
#2003년 ~ 2018년 기상데이터 합치기
기상데이터 = pd.concat([기상데이터_2003,기상데이터_2004,기상데이터_2005,기상데이터_2006,기상데이터_2007,기상데이터_2008,기상데이터_2009,기상데이터_2010,기상데이터_2011,기상데이터_2012,기상데이터_2013,기상데이터_2014,기상데이터_2015,기상데이터_2016,기상데이터_2017,기상데이터_2018], axis = 0)
In [4]:
기상데이터.columns
Out[4]:
Index(['지점', '지점명', '일시', '평균기온(°C)', '최저기온(°C)', '최저기온 시각(hhmi)', '최고기온(°C)',
       '최고기온 시각(hhmi)', '강수 계속시간(hr)', '10분 최다 강수량(mm)', '10분 최다강수량 시각(hhmi)',
       '1시간 최다강수량(mm)', '1시간 최다 강수량 시각(hhmi)', '일강수량(mm)', '최대 순간 풍속(m/s)',
       '최대 순간 풍속 풍향(16방위)', '최대 순간풍속 시각(hhmi)', '최대 풍속(m/s)', '최대 풍속 풍향(16방위)',
       '최대 풍속 시각(hhmi)', '평균 풍속(m/s)', '풍정합(100m)', '최다풍향(16방위)',
       '평균 이슬점온도(°C)', '최소 상대습도(%)', '최소 상대습도 시각(hhmi)', '평균 상대습도(%)',
       '평균 증기압(hPa)', '평균 현지기압(hPa)', '최고 해면기압(hPa)', '최고 해면기압 시각(hhmi)',
       '최저 해면기압(hPa)', '최저 해면기압 시각(hhmi)', '평균 해면기압(hPa)', '가조시간(hr)',
       '합계 일조시간(hr)', '1시간 최다일사 시각(hhmi)', '1시간 최다일사량(MJ/m2)', '합계 일사량(MJ/m2)',
       '일 최심신적설(cm)', '일 최심신적설 시각(hhmi)', '일 최심적설(cm)', '일 최심적설 시각(hhmi)',
       '합계 3시간 신적설(cm)', '평균 전운량(1/10)', '평균 중하층운량(1/10)', '평균 지면온도(°C)',
       '최저 초상온도(°C)', '평균 5cm 지중온도(°C)', '평균 10cm 지중온도(°C)',
       '평균 20cm 지중온도(°C)', '평균 30cm 지중온도(°C)', '0.5m 지중온도(°C)',
       '1.0m 지중온도(°C)', '1.5m 지중온도(°C)', '3.0m 지중온도(°C)', '5.0m 지중온도(°C)',
       '합계 대형증발량(mm)', '합계 소형증발량(mm)', '9-9강수(mm)', '기사', '안개 계속시간(hr)'],
      dtype='object')
In [5]:
#기상데이터에서 필요한 columns들만 추출하여 최종 기상데이터 만들기
기상데이터_최종 = pd.concat([기상데이터['지점명'], 기상데이터['일시'], 기상데이터['평균기온(°C)'], 기상데이터['최저기온(°C)'], 기상데이터['최고기온(°C)'], 기상데이터['평균 풍속(m/s)'], 기상데이터['평균 상대습도(%)']], axis = 1)

기상데이터_최종.to_csv('기상데이터_최종.csv', encoding = 'CP949')
In [6]:
#AI데이터 read
AI데이터 = pd.read_csv('C:/Users/User/Desktop/AI data/Ainfluenzakorea.csv', encoding = 'CP949')
In [7]:
#AI데이터에서 발생일자 columns 추출
AI데이터_발생일자 = AI데이터['발생일자(진단일)']
In [8]:
발생일 = []
진단일 = []

for i in AI데이터_발생일자:
    i.split(sep = ' ')
    발생일.append(i[:11])
    진단일.append(i[11:])
In [9]:
#AI데이터에서 발생일과 진단일 분리
from re import sub

spec_str = '[!@#$%^&*()~]'
진단일 = [sub(spec_str, '', text) for text in 진단일]
#print('진단일 :', 진단일)

AI데이터['발생일'] = 발생일
AI데이터['진단일'] = 진단일

#여백 처리
AI데이터['발생일'] = [''.join(text.split()) for text in AI데이터['발생일']]
기상데이터_최종['일시'] = [''.join(text.split()) for text in 기상데이터_최종['일시']]
In [10]:
AI데이터.columns
Out[10]:
Index(['가축전염병명', '농장명(농장주)', '농장소재지', '발생일자(진단일)', '축종(품종)', '발생두수(마리)',
       '진단기관', '종식일', '발생일', '진단일'],
      dtype='object')
In [11]:
#AI데이터에서 농장소재지 columns 추출
AI데이터_농장소재지 = AI데이터['농장소재지'].tolist()

#AI데이터의 농장소재지를 분리 후 AI데이터_농장소재지_리에 저장
AI데이터_농장소재지_리 = []

for n in AI데이터_농장소재지:
    a = n.split(sep = ' ')
    if len(a) == 3 :
        b = a[2]
        AI데이터_농장소재지_리.append(b)
    elif len(a) == 4 :
        c = a[3]
        AI데이터_농장소재지_리.append(c)
    elif len(a) == 5 :
        d = a[4]
        AI데이터_농장소재지_리.append(d)
In [12]:
#AI데이터의 농장소재지를 분리 후 AI데이터_농장소재지_시구군에 저장
AI데이터_농장소재지_시구군 = []
for g in AI데이터_농장소재지:
    f = g.split(sep = ' ')
    h = f[1]
    AI데이터_농장소재지_시구군.append(h)
In [13]:
#AI데이터에 새로운 columns 리 생성 후 데이터 추가
AI데이터['리'] = AI데이터_농장소재지_리
In [16]:
기상데이터_최종
Out[16]:
  지점명 일시 평균기온(°C) 최저기온(°C) 최고기온(°C) 평균 풍속(m/s) 평균 상대습도(%)
0 속초 2003-01-01 -2.7 -7.3 1.4 2.2 32.9
1 속초 2003-01-02 -2.6 -8.1 2.3 1.9 58.0
2 속초 2003-01-03 -1.4 -5.3 2.9 2.7 46.4
3 속초 2003-01-04 -8.0 -11.8 -5.2 3.6 35.1
4 속초 2003-01-05 -10.9 -14.3 -6.4 2.7 29.3
... ... ... ... ... ... ... ...
34670 남해 2018-12-27 0.3 -4.2 4.5 1.5 30.4
34671 남해 2018-12-28 -2.5 -6.8 1.4 1.4 40.8
34672 남해 2018-12-29 -1.5 -6.8 2.5 1.6 41.3
34673 남해 2018-12-30 -1.2 -5.6 3.1 0.9 47.8
34674 남해 2018-12-31 0.9 -3.9 6.6 0.8 34.0

507526 rows × 7 columns

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기