2024빅콘테스트

Author

SEOYEON CHOI

Published

October 13, 2024

https://www.bigcontest.or.kr/

지정 주제명

참외 농장 생육 예측 모델 개발

선정 배경

  • 과수의 생산량은 농가의 수익을 결정짓는 중요한 요소이기 때문에, 생산량을 높이는 것은 농가의 수익을 증대시키 는 가장 직접적인 방법이며 참외 농장의 내/외부 환경 데이터와 참외 생육 데이터들을 활용하여 참외의 생산량을 예 측함으로써, 농가 및 연구원들의 의사결정에 긍정적으로 기여

  • 참외 농장의 환경변화에 따른 생육 데이터와 생산량, 가격 데이터를 활용하여 고수익을 창출한 생육모델(적정 생산 량, 생육 환경과 생육 상태)를 도출함으로써 참외 재배의 최고의 효율을 견인할 수 있는 방안을 제시할 수 있을 것으 로 기대

평가 기준

  1. 참외 농장의 생육 모델을 통하여 예측한 생육 상태 변화에 따른 생산량 결과와 실제 데이터를 비교하여 정밀도 측정
  2. 참외 생육의 품질 데이터에 따른 생산량과 실제 데이터 간 상관관계를 도출하여 최적화된 생육 환경 제시 (*외부 데이터 활용 가능)

데이터

  • 참외농장 내부 환경변화에 따른 가격 데이터(df1)
No. 컬럼ID 컬럼명 타입 NULL
1 FARM_ID 농장ID varchar Y
2 MSRM_DT 측정일 timestamp N
3 AREA_NM 구역명 varchar Y
4 INNER_TPRT 내부온도 numeric Y
5 INNER_HMDT 내부습도 numeric Y
6 INNER_CBDX_CTRN 내부이산화탄소농도 numeric Y
7 SPCIES_NM_1 품종명_1 varchar Y
8 SPCIES_NM_2 품종명_2 varchar Y
9 SPCIES_NM_3 품종명_3 varchar Y
10 HOUSE_QLFMT_CONT 하우스재질내용 varchar Y
11 HOUSE_TYPE 하우스타입 varchar Y
12 PLANT_AR_SQM 식재면적제곱미터 numeric Y
13 SHPMN_QTY 출하량 numeric Y
14 SHPMN_AMT 출하금액 numeric Y
  • 참외농장 내부 환경변화에 따른 생산량 데이터(df2)
No. 컬럼ID 컬럼명 타입 NULL
1 FARM_ID 농장ID varchar Y
2 MSRM_DT 측정일 timestamp N
3 AREA_NM 구역명 varchar Y
4 AREA_TPRT 지역온도 numeric Y
5 AREA_HMDT 지역습도 numeric Y
6 AREA_WDSP 지역풍속 numeric Y
7 INNER_TPRT 내부온도 numeric Y
8 INNER_HMDT 내부습도 numeric Y
9 INNER_CBDX_CTRN 내부이산화탄소농도 numeric Y
10 SHPMN_QTY 출하량 numeric Y
  • 참외농장 내부 환경변화에 따른 생육 데이터(df3)
No. 컬럼ID 컬럼명 타입 NULL
1 FARM_ID 농장ID varchar Y
2 MSRM_DT 측정일 timestamp N
3 AREA_NM 구역명 varchar Y
4 INNER_TPRT 내부온도 numeric Y
5 INNER_HMDT 내부습도 numeric Y
6 INNER_CBDX_CTRN 내부이산화탄소농도 numeric Y
7 SPCIES_NM_1 품종명_1 varchar Y
8 SPCIES_NM_2 품종명_2 varchar Y
9 SPCIES_NM_3 품종명_3 varchar Y
10 HOUSE_QLFMT_CONT 하우스재질내용 varchar Y
11 HOUSE_TYPE 하우스타입 varchar Y
12 PLANT_AR_SQM 식재면적제곱미터 numeric Y
13 INDVD_NO 개체번호 varchar Y
14 PLT_LNGTH 초장 numeric Y
15 LEAF_LNGTH 엽장 numeric Y
16 LEAF_WDTH 엽폭 numeric Y
17 STEM_THNS 줄기굵기 numeric Y
  • 참외농장 외부 환경변화에 따른 가격 데이터(df4)
No. 컬럼ID 컬럼명 타입 NULL
1 FARM_ID 농장ID varchar Y
2 MSRM_DT 측정일 timestamp N
3 AREA_NM 구역명 varchar Y
4 AREA_TPRT 지역온도 numeric Y
5 AREA_HMDT 지역습도 numeric Y
6 AREA_WDSP 지역풍속 numeric Y
7 EXTN_TPRT 외부기온 numeric Y
8 EXTN_WDSP 외부풍속 numeric Y
9 EXTN_SRQT 외부일사량 numeric Y
10 SPCIES_NM_1 품종명_1 varchar Y
11 SPCIES_NM_2 품종명_2 varchar Y
12 SPCIES_NM_3 품종명_3 varchar Y
13 HOUSE_QLFMT_CONT 하우스재질내용 varchar Y
14 HOUSE_TYPE 하우스타입 varchar Y
15 PLANT_AR_SQM 식재면적제곱미터 numeric Y
16 SHPMN_QTY 출하량 numeric Y
17 SHPMN_AMT 출하금액 numeric Y
  • 참외농장 외부 환경변화에 따른 내부 환경 데이터(df5)
No. 컬럼ID 컬럼명 타입 NULL
1 FARM_ID 농장ID varchar Y
2 MSRM_DT 측정일 timestamp N
3 AREA_NM 구역명 varchar Y
4 AREA_TPRT 지역온도 numeric Y
5 AREA_HMDT 지역습도 numeric Y
6 AREA_WDSP 지역풍속 numeric Y
7 EXTN_TPRT 외부기온 numeric Y
8 EXTN_WDSP 외부풍속 numeric Y
9 EXTN_SRQT 외부일사량 numeric Y
10 INNER_TPRT 내부온도 numeric Y
11 INNER_HMDT 내부습도 numeric Y
12 INNER_CBDX_CTRN 내부이산화탄소농도 numeric Y
  • 참외농장 외부 환경변화에 따른 생산량 데이터(df6)
No. 컬럼ID 컬럼명 타입 NULL
1 FARM_ID 농장ID varchar Y
2 MSRM_DT 측정일 timestamp N
3 AREA_NM 구역명 varchar Y
4 AREA_TPRT 지역온도 numeric Y
5 AREA_HMDT 지역습도 numeric Y
6 AREA_WDSP 지역풍속 numeric Y
7 EXTN_TPRT 외부기온 numeric Y
8 EXTN_WDSP 외부풍속 numeric Y
9 EXTN_SRQT 외부일사량 numeric Y
10 SHPMN_QTY 출하량 numeric Y
  • 참외농장 외부 환경변화에 따른 생육 데이터(df7)
No. 컬럼ID 컬럼명 타입 NULL
1 FARM_ID 농장ID varchar Y
2 MSRM_DT 측정일 timestamp N
3 AREA_NM 구역명 varchar Y
4 AREA_TPRT 지역온도 numeric Y
5 AREA_HMDT 지역습도 numeric Y
6 AREA_WDSP 지역풍속 numeric Y
7 EXTN_TPRT 외부기온 numeric Y
8 EXTN_WDSP 외부풍속 numeric Y
9 EXTN_SRQT 외부일사량 numeric Y
10 SPCIES_NM_1 품종명_1 varchar Y
11 SPCIES_NM_2 품종명_2 varchar Y
12 SPCIES_NM_3 품종명_3 varchar Y
13 HOUSE_QLFMT_CONT 하우스재질내용 varchar Y
14 HOUSE_TYPE 하우스타입 varchar Y
15 PLANT_AR_SQM 식재면적제곱미터 numeric Y
16 INDVD_NO 개체번호 varchar Y
17 PLT_LNGTH 초장 numeric Y
18 LEAF_LNGTH 엽장 numeric Y
19 LEAF_WDTH 엽폭 numeric Y
20 STEM_THNS 줄기굵기 numeric Y
  • 참외농장 작물 생육변화에 따른 생산량 데이터(df8)
No. 컬럼ID 컬럼명 타입 NULL
1 FARM_ID 농장ID varchar Y
2 MSRM_DT 측정일 timestamp N
3 AREA_NM 구역명 varchar Y
4 SPCIES_NM_1 품종명_1 varchar Y
5 SPCIES_NM_2 품종명_2 varchar Y
6 SPCIES_NM_3 품종명_3 varchar Y
7 HOUSE_QLFMT_CONT 하우스재질내용 varchar Y
8 HOUSE_TYPE 하우스타입 varchar Y
9 PLANT_AR_SQM 식재면적제곱미터 numeric Y
10 INDVD_NO 개체번호 varchar Y
11 PLT_LNGTH 초장 numeric Y
12 LEAF_LNGTH 엽장 numeric Y
13 LEAF_WDTH 엽폭 numeric Y
14 STEM_THNS 줄기굵기 numeric Y
15 SHPMN_QTY 출하량 numeric Y
16 IMG_COURS 이미지경로 varchar Y
# df1.assign(Date = pd.to_datetime(df1['MSRM_DT']).dt.date, Hour = df1['MSRM_DT'].dt.time).drop(columns=['AREA_NM','SPICES_NM_1','SPICES_NM_2','SPICES_NM_3','HOUSE_QLFMT_CONT','HOUSE_TYPE','MSRM_DT'])
# 내부 온도, 습도, 이산화탄소 농도와 출하량, 출하금액 관계
# df2.drop(columns=['AREA_NM','MSRM_DT'])
# 지역 온도, 습도, 풍속 및 내부 온도, 습도, 인산화탄소 농도와 출하량 관계
# df3.drop(columns=['AREA_NM','SPICES_NM_1','SPICES_NM_2','SPICES_NM_3','HOUSE_QLFMT_CONT','HOUSE_TYPE','INDVD_NO','MSRM_DT'])
# df3 내부 온도, 습도, 이산화탄소농도와 초장, 엽장, 엽폭 관계
# df4.drop(columns=['AREA_NM','SPICES_NM_1','SPICES_NM_2','SPICES_NM_3','HOUSE_QLFMT_CONT','HOUSE_TYPE','MSRM_DT'])
# 지역 온도, 습도, 풍속 및 외부 기온, 풍속, 일사량과 출하량, 출하금액의 차이
# df5.drop(columns=['AREA_NM','MSRM_DT'])
# 지역 온도, 습도, 풍속 과 외부 기온, 풍속, 일사량과 내부 오도ㅡ 습도, 이산화탄소 농도의 관계
# df6.drop(columns=['AREA_NM','MSRM_DT'])
# 지역 온도, 습도, 풍속과 외부 기온, 풍속, 일사량과 출하량의 관계
# df7.drop(columns=['AREA_NM','SPICES_NM_1','SPICES_NM_2','SPICES_NM_3','HOUSE_QLFMT_CONT','HOUSE_TYPE','INDVD_NO','MSRM_DT'])
# 지역 온도, 습도, 풍속과 외부 기온, 풍속, 일사량과 초장, 엽장, 엽폭, 줄기 굵기의 관계
# df8.drop(columns=['AREA_NM','SPICES_NM_1','SPICES_NM_2','SPICES_NM_3','HOUSE_QLFMT_CONT','HOUSE_TYPE','MSRM_DT'])
# 초장, 엽장, 엽폭, 줄기 굵기와 출하량 간의 관계
FARM_ID MSRM_DT AREA_NM SPICES_NM_1 SPICES_NM_2 SPICES_NM_3 HOUSE_QLFMT_CONT HOUSE_TYPE PLANT_AR_SQM INDVD_NO PLT_LNGTH LEAF_LNGTH LEAF_WDTH STEM_THNS SHPMN_QTY
0 GBE_KRMLN_0020000u 2019-01-01 00:00:00 성주 스마트 NaN NaN 비닐 단동 13200 NaN NaN NaN NaN NaN NaN
1 GBE_KRMLN_0020000u 2019-01-01 01:00:00 성주 스마트 NaN NaN 비닐 단동 13200 NaN NaN NaN NaN NaN NaN
2 GBE_KRMLN_0020000u 2019-01-01 02:00:00 성주 스마트 NaN NaN 비닐 단동 13200 NaN NaN NaN NaN NaN NaN
3 GBE_KRMLN_0020000u 2019-01-01 03:00:00 성주 스마트 NaN NaN 비닐 단동 13200 NaN NaN NaN NaN NaN NaN
4 GBE_KRMLN_0020000u 2019-01-01 04:00:00 성주 스마트 NaN NaN 비닐 단동 13200 NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
10195 GBE_KRMLN_0020000u 2019-12-31 19:00:00 성주 스마트 NaN NaN 비닐 단동 13200 NaN NaN NaN NaN NaN NaN
10196 GBE_KRMLN_0020000u 2019-12-31 20:00:00 성주 스마트 NaN NaN 비닐 단동 13200 NaN NaN NaN NaN NaN NaN
10197 GBE_KRMLN_0020000u 2019-12-31 21:00:00 성주 스마트 NaN NaN 비닐 단동 13200 NaN NaN NaN NaN NaN NaN
10198 GBE_KRMLN_0020000u 2019-12-31 22:00:00 성주 스마트 NaN NaN 비닐 단동 13200 NaN NaN NaN NaN NaN NaN
10199 GBE_KRMLN_0020000u 2019-12-31 23:00:00 성주 스마트 NaN NaN 비닐 단동 13200 NaN NaN NaN NaN NaN NaN

10200 rows × 15 columns

  • 초장: 관부에서 가장 긴 잎의 선단까지의 길이
  • 엽장: 완전히 전개된 최근 3번째 잎을 대상 엽육이 시작되는 지점부터 잎 끝부분까지 길이
  • 엽폭: 완전히 전개된 최근 3번째 잎을 대상으로 하며, 가장 폭이 넓은 부분 측정

Import

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import mean_squared_error, r2_score

Data import

https://dacon.io/competitions/official/236033/codeshare/7779

# df1_filtered = df1.assign(Date = pd.to_datetime(df1['MSRM_DT']).dt.date, Hour = df1['MSRM_DT'].dt.time).assign(Price=lambda x: x['SHPMN_AMT'] / x['SHPMN_QTY'])
# df1_series = pd.Series(df1_filtered.Price)
# interpolated_series = df1_series.interpolate(method='linear')
# interpolated_series = interpolated_series.interpolate(method='bfill')
# df1_filtered = df1_filtered.assign(Price_2 = interpolated_series).dropna(subset=['Price_2']).dropna(subset=['INNER_TPRT', 'INNER_HMDT', 'INNER_CBDX_CTRN'], how='all')
# mean_value = df1_filtered['INNER_TPRT'].mean()
# df1_filtered['INNER_TPRT'].fillna(mean_value, inplace=True)
# mean_value = df1_filtered['INNER_HMDT'].mean()
# df1_filtered['INNER_HMDT'].fillna(mean_value, inplace=True)
# mean_value = df1_filtered['INNER_CBDX_CTRN'].mean()
# df1_filtered['INNER_CBDX_CTRN'].fillna(mean_value, inplace=True)
df1_filtered = df1.assign(Date = pd.to_datetime(df1['MSRM_DT']).dt.date, Hour = df1['MSRM_DT'].dt.time).assign(Price=lambda x: x['SHPMN_AMT'] / x['SHPMN_QTY']).dropna(subset=['INNER_TPRT', 'INNER_HMDT', 'INNER_CBDX_CTRN','Price'])
df1_filtered = df1_filtered.groupby('Date').agg({'INNER_TPRT': 'mean','INNER_HMDT': 'mean','INNER_CBDX_CTRN': 'mean','Price':'mean'}).reset_index()
df1_filtered
Date INNER_TPRT INNER_HMDT INNER_CBDX_CTRN Price
0 2019-03-05 26.455556 76.888889 568.333333 3989.189189
1 2019-03-12 25.810000 59.500000 617.500000 3918.181818
2 2019-03-13 24.026667 61.466667 808.400000 4395.000000
3 2019-03-14 20.966667 60.208333 977.708333 2683.333333
4 2019-03-18 19.929167 60.166667 936.083333 3205.555556
5 2019-03-19 22.100000 56.521739 970.173913 2417.741935
6 2019-03-20 18.943478 65.304348 871.347826 1725.925926
7 2019-03-24 21.175000 51.166667 909.708333 2951.724138
8 2019-03-25 20.895833 57.500000 923.375000 3034.615385
9 2019-03-26 22.500000 52.347826 948.782609 2092.063492
10 2019-03-28 23.743478 52.260870 962.304348 2703.225806
11 2019-03-29 23.287500 55.666667 988.875000 2528.125000
12 2019-03-31 23.154167 58.208333 901.958333 3594.444444
13 2019-04-02 22.437500 53.291667 903.041667 3145.454545
14 2019-04-03 22.322727 54.500000 941.363636 4008.000000
15 2019-04-08 26.437500 51.375000 782.687500 3494.736842
16 2019-04-15 19.958333 59.166667 687.125000 4309.677419
17 2019-04-16 19.662500 54.250000 713.208333 4166.666667
18 2019-04-18 22.508333 58.041667 854.291667 3476.470588
19 2019-04-19 19.159091 71.727273 885.000000 3627.777778
20 2019-04-22 23.691667 60.833333 845.041667 1072.727273
21 2019-05-19 26.968421 75.684211 749.368421 1336.842105
22 2019-05-21 23.641667 59.333333 777.083333 1238.297872
23 2019-05-22 24.829167 60.208333 828.958333 1424.444444
24 2019-05-23 26.112500 60.958333 857.750000 1216.666667
25 2019-05-28 24.220833 64.625000 712.291667 876.923077
X = df1_filtered[['INNER_TPRT', 'INNER_HMDT', 'INNER_CBDX_CTRN']].values
y = df1_filtered['Price'].values
# 데이터 분할 (훈련 세트: 80%, 테스트 세트: 20%)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
# 결정 트리 회귀 모델 생성
model = DecisionTreeRegressor(random_state=10)
model.fit(X_train, y_train)  # 모델 훈련
DecisionTreeRegressor(random_state=10)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
# 예측
y_pred = model.predict(X_test)
# 성능 평가
mse = mean_squared_error(y_test, y_pred)  # 평균 제곱 오차
r2 = r2_score(y_test, y_pred)  # R^2 점수

# print("예측값:", y_pred)
print("평균 제곱 오차 (MSE):", mse)
print("R^2 점수:", r2)
평균 제곱 오차 (MSE): 2101299.10966768
R^2 점수: -1.6028194433833463
df2 = pd.read_excel('./dataset/Smartfarm/(스마트팜)참외농장 내부 환경변화에 따른 생산량 데이터_데이터.xlsx')
# FARM_ID GBE_KRMLN_0030000g
df2_filtered = df2.assign(Date = pd.to_datetime(df2['MSRM_DT']).dt.date, Hour = df2['MSRM_DT'].dt.time)\
                .dropna(subset=['SHPMN_QTY'])\
                .drop(columns=['AREA_NM', 'FARM_ID','MSRM_DT'])
df2_filtered
AREA_TPRT AREA_HMDT AREA_WDSP INNER_TPRT INNER_HMDT INNER_CBDX_CTRN SHPMN_QTY Date Hour
1488 2.7 78.0 0.9 19.8 NaN NaN 140.0 2020-03-03 00:00:00
1489 2.3 80.0 0.6 19.5 NaN NaN 140.0 2020-03-03 01:00:00
1490 1.9 81.0 0.1 19.0 99.7 NaN 140.0 2020-03-03 02:00:00
1491 1.0 89.0 0.4 18.5 99.6 NaN 140.0 2020-03-03 03:00:00
1492 1.0 93.0 0.5 18.1 NaN NaN 140.0 2020-03-03 04:00:00
... ... ... ... ... ... ... ... ... ...
5515 28.9 94.0 1.8 NaN NaN NaN 270.0 2020-08-17 19:00:00
5516 27.7 98.0 1.5 NaN NaN NaN 270.0 2020-08-17 20:00:00
5517 26.7 99.0 0.6 NaN NaN NaN 270.0 2020-08-17 21:00:00
5518 26.1 99.0 0.6 NaN NaN NaN 270.0 2020-08-17 22:00:00
5519 25.2 99.0 0.7 NaN NaN NaN 270.0 2020-08-17 23:00:00

2016 rows × 9 columns





# FARM_ID = GBE_KRMLN_0030000g
df3 = pd.read_excel('./dataset/Smartfarm/(스마트팜)참외농장 내부 환경변화에 따른 생육 데이터_데이터.xlsx')
df3_filtered = df3.assign(Date = pd.to_datetime(df3['MSRM_DT']).dt.date, Hour = df3['MSRM_DT'].dt.time)\
                .drop(columns=['SPICES_NM_2', 'SPICES_NM_3','SPICES_NM_1','AREA_NM','HOUSE_QLFMT_CONT','HOUSE_TYPE', 'FARM_ID','MSRM_DT'])
# PLT_LNGTH 초장 LEAF_LNGTH 엽장 LEAF_WDTH 엽폭 STEM_THNS 줄기굵기

df4 = pd.read_excel('./dataset/Smartfarm/(스마트팜)참외농장 외부 환경변화에 따른 가격 데이터_데이터.xlsx')
# FARM_ID = GBE_KRMLN_0030000g
# PLANT_AR_SQM = 16500
df4_filtered = df4.assign(Date = pd.to_datetime(df4['MSRM_DT']).dt.date, Hour = df4['MSRM_DT'].dt.time)\
                .dropna(subset=['SHPMN_QTY', 'SHPMN_AMT']).drop(columns=['SPICES_NM_2', 'SPICES_NM_3']).\
                assign(Price=lambda x: x['SHPMN_AMT'] / x['SHPMN_QTY'])\
                .drop(columns=['SHPMN_QTY', 'SHPMN_AMT','SPICES_NM_1','AREA_NM','HOUSE_QLFMT_CONT','HOUSE_TYPE'])\
                .drop(columns = ['FARM_ID','PLANT_AR_SQM','MSRM_DT'])

df5 = pd.read_excel('./dataset/Smartfarm/(스마트팜)참외농장 외부 환경변화에 따른 내부 환경 데이터_데이터.xlsx')

df6 = pd.read_excel('./dataset/Smartfarm/(스마트팜)참외농장 외부 환경변화에 따른 생산량 데이터_데이터.xlsx')

df7 = pd.read_excel('./dataset/Smartfarm/(스마트팜)참외농장 외부 환경변화에 따른 생육 데이터_데이터.xlsx')

df8 = pd.read_excel('./dataset/Smartfarm/(스마트팜)참외농장 작물 생육변화에 따른 생산량 데이터_데이터.xlsx')

sns.pairplot(df2_filtered[["INNER_TPRT","INNER_HMDT","INNER_CBDX_CTRN"]])

df1.FARM_ID.unique()
array(['GBE_KRMLN_002000at'], dtype=object)
df7.FARM_ID.unique()
array(['GBE_KRMLN_002000at'], dtype=object)
df1_filtered
FARM_ID MSRM_DT AREA_NM INNER_TPRT INNER_HMDT INNER_CBDX_CTRN SPICES_NM_1 HOUSE_QLFMT_CONT HOUSE_TYPE PLANT_AR_SQM SHPMN_QTY SHPMN_AMT
1523 GBE_KRMLN_002000at 2019-03-05 11:00:00 성주 30.9 81.0 417.0 바른꿀 비닐 단동 19800 740.0 2952000.0
1524 GBE_KRMLN_002000at 2019-03-05 12:00:00 성주 32.4 77.0 411.0 바른꿀 비닐 단동 19800 740.0 2952000.0
1525 GBE_KRMLN_002000at 2019-03-05 13:00:00 성주 32.5 74.0 411.0 바른꿀 비닐 단동 19800 740.0 2952000.0
1526 GBE_KRMLN_002000at 2019-03-05 14:00:00 성주 29.3 68.0 426.0 바른꿀 비닐 단동 19800 740.0 2952000.0
1527 GBE_KRMLN_002000at 2019-03-05 15:00:00 성주 26.2 70.0 452.0 바른꿀 비닐 단동 19800 740.0 2952000.0
... ... ... ... ... ... ... ... ... ... ... ... ...
3547 GBE_KRMLN_002000at 2019-05-28 19:00:00 성주 22.9 57.0 621.0 바른꿀 비닐 단동 19800 260.0 228000.0
3548 GBE_KRMLN_002000at 2019-05-28 20:00:00 성주 19.9 61.0 784.0 바른꿀 비닐 단동 19800 260.0 228000.0
3549 GBE_KRMLN_002000at 2019-05-28 21:00:00 성주 17.9 65.0 948.0 바른꿀 비닐 단동 19800 260.0 228000.0
3550 GBE_KRMLN_002000at 2019-05-28 22:00:00 성주 16.6 67.0 1042.0 바른꿀 비닐 단동 19800 260.0 228000.0
3551 GBE_KRMLN_002000at 2019-05-28 23:00:00 성주 15.9 69.0 1084.0 바른꿀 비닐 단동 19800 260.0 228000.0

568 rows × 12 columns

df7
FARM_ID MSRM_DT AREA_NM AREA_TPRT AREA_HMDT AREA_WDSP EXTN_TPRT EXTN_WDSP EXTN_SRQT SPICES_NM_1 SPICES_NM_2 SPICES_NM_3 HOUSE_QLFMT_CONT HOUSE_TYPE PLANT_AR_SQM INDVD_NO PLT_LNGTH LEAF_LNGTH LEAF_WDTH STEM_THNS
0 GBE_KRMLN_002000at 2019-01-01 00:00:00 성주 -1.9 50 1.6 NaN NaN NaN 바른꿀 NaN NaN 비닐 단동 19800 NaN NaN NaN NaN NaN
1 GBE_KRMLN_002000at 2019-01-01 01:00:00 성주 -3.2 54 1.7 NaN NaN NaN 바른꿀 NaN NaN 비닐 단동 19800 NaN NaN NaN NaN NaN
2 GBE_KRMLN_002000at 2019-01-01 02:00:00 성주 -2.5 62 2.1 NaN NaN NaN 바른꿀 NaN NaN 비닐 단동 19800 NaN NaN NaN NaN NaN
3 GBE_KRMLN_002000at 2019-01-01 03:00:00 성주 -2.5 62 1.6 NaN NaN NaN 바른꿀 NaN NaN 비닐 단동 19800 NaN NaN NaN NaN NaN
4 GBE_KRMLN_002000at 2019-01-01 04:00:00 성주 -3.6 67 0.8 NaN NaN NaN 바른꿀 NaN NaN 비닐 단동 19800 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
10987 GBE_KRMLN_002000at 2019-12-31 19:00:00 성주 -2.5 34 2.4 NaN NaN NaN 바른꿀 NaN NaN 비닐 단동 19800 NaN NaN NaN NaN NaN
10988 GBE_KRMLN_002000at 2019-12-31 20:00:00 성주 -3.2 38 1.2 NaN NaN NaN 바른꿀 NaN NaN 비닐 단동 19800 NaN NaN NaN NaN NaN
10989 GBE_KRMLN_002000at 2019-12-31 21:00:00 성주 -4.3 43 1.0 NaN NaN NaN 바른꿀 NaN NaN 비닐 단동 19800 NaN NaN NaN NaN NaN
10990 GBE_KRMLN_002000at 2019-12-31 22:00:00 성주 -3.9 39 1.8 NaN NaN NaN 바른꿀 NaN NaN 비닐 단동 19800 NaN NaN NaN NaN NaN
10991 GBE_KRMLN_002000at 2019-12-31 23:00:00 성주 -4.4 40 1.6 NaN NaN NaN 바른꿀 NaN NaN 비닐 단동 19800 NaN NaN NaN NaN NaN

10992 rows × 20 columns

df2.FARM_ID.unique()
array(['GBE_KRMLN_0030000g'], dtype=object)
df3.FARM_ID.unique()
array(['GBE_KRMLN_0030000g'], dtype=object)
df4.FARM_ID.unique()
array(['GBE_KRMLN_0030000g'], dtype=object)
df5.FARM_ID.unique()
array(['GBE_KRMLN_0030000r'], dtype=object)
df6.FARM_ID.unique()
array(['GBE_KRMLN_002000aa'], dtype=object)
df8.FARM_ID.unique()
array(['GBE_KRMLN_0020000u'], dtype=object)