{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":81000,"databundleVersionId":8812083,"sourceType":"competition"}],"dockerImageVersionId":30732,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport seaborn as sns # plotting\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-06-11T14:33:11.562235Z","iopub.execute_input":"2024-06-11T14:33:11.562677Z","iopub.status.idle":"2024-06-11T14:33:14.137826Z","shell.execute_reply.started":"2024-06-11T14:33:11.562643Z","shell.execute_reply":"2024-06-11T14:33:14.136533Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def load_data(crop: str, mode: str=\"train\"):\n    # note that years represent an offset from model spinup;\n    # soil co2 dataset has real year;\n    # 0-30 are days before sowing, 31-238 are days after sowing\n    #tasmax = pd.read_parquet(f\"/kaggle/input/the-future-crop-challenge/tasmax_{crop}_{mode}.parquet\")\n    #tasmin = pd.read_parquet(f\"/kaggle/input/the-future-crop-challenge/tasmin_{crop}_{mode}.parquet\")\n    #pr = pd.read_parquet(f\"/kaggle/input/the-future-crop-challenge/pr_{crop}_{mode}.parquet\")\n    #rsds = pd.read_parquet(f\"/kaggle/input/the-future-crop-challenge/rsds_{crop}_{mode}.parquet\")\n    soil_co2 = pd.read_parquet(f\"/kaggle/input/the-future-crop-challenge/soil_co2_{crop}_{mode}.parquet\")\n    target = pd.read_parquet(f\"/kaggle/input/the-future-crop-challenge/{mode}_solutions_{crop}.parquet\")\n    return {\n        #'tasmax': tasmax,\n        #'tasmin': tasmin,\n        #'pr': pr,\n        #'rsds': rsds,\n        'soil_co2': soil_co2,\n        'target': target,\n    }","metadata":{"execution":{"iopub.status.busy":"2024-06-11T15:06:38.495755Z","iopub.execute_input":"2024-06-11T15:06:38.496157Z","iopub.status.idle":"2024-06-11T15:06:38.503163Z","shell.execute_reply.started":"2024-06-11T15:06:38.496130Z","shell.execute_reply":"2024-06-11T15:06:38.501763Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"maize_train = load_data(\"maize\", \"train\")\nmaize_train.keys()","metadata":{"execution":{"iopub.status.busy":"2024-06-11T15:06:42.180505Z","iopub.execute_input":"2024-06-11T15:06:42.180872Z","iopub.status.idle":"2024-06-11T15:06:42.265395Z","shell.execute_reply.started":"2024-06-11T15:06:42.180844Z","shell.execute_reply":"2024-06-11T15:06:42.264372Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"wheat_train = load_data(\"wheat\", \"train\")\nwheat_train.keys()","metadata":{"execution":{"iopub.status.busy":"2024-06-11T15:07:45.965911Z","iopub.execute_input":"2024-06-11T15:07:45.966746Z","iopub.status.idle":"2024-06-11T15:07:46.086442Z","shell.execute_reply.started":"2024-06-11T15:07:45.966710Z","shell.execute_reply":"2024-06-11T15:07:46.085208Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"maize_train['soil_co2'].join(maize_train['target'])['yield'].mean()","metadata":{"execution":{"iopub.status.busy":"2024-06-11T15:07:31.841107Z","iopub.execute_input":"2024-06-11T15:07:31.841671Z","iopub.status.idle":"2024-06-11T15:07:31.869533Z","shell.execute_reply.started":"2024-06-11T15:07:31.841625Z","shell.execute_reply":"2024-06-11T15:07:31.868460Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"wheat_train['soil_co2'].join(wheat_train['target'])['yield'].mean()","metadata":{"execution":{"iopub.status.busy":"2024-06-11T15:07:52.193836Z","iopub.execute_input":"2024-06-11T15:07:52.194224Z","iopub.status.idle":"2024-06-11T15:07:52.211933Z","shell.execute_reply.started":"2024-06-11T15:07:52.194194Z","shell.execute_reply":"2024-06-11T15:07:52.210829Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"soil_co2_maize_test = pd.read_parquet(f\"/kaggle/input/the-future-crop-challenge/soil_co2_maize_test.parquet\")","metadata":{"execution":{"iopub.status.busy":"2024-06-11T15:09:32.048843Z","iopub.execute_input":"2024-06-11T15:09:32.049662Z","iopub.status.idle":"2024-06-11T15:09:32.205501Z","shell.execute_reply.started":"2024-06-11T15:09:32.049624Z","shell.execute_reply":"2024-06-11T15:09:32.204532Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"soil_co2_maize_test['yield'] = maize_train['soil_co2'].join(maize_train['target'])['yield'].mean()","metadata":{"execution":{"iopub.status.busy":"2024-06-11T15:09:50.040026Z","iopub.execute_input":"2024-06-11T15:09:50.040404Z","iopub.status.idle":"2024-06-11T15:09:50.058893Z","shell.execute_reply.started":"2024-06-11T15:09:50.040374Z","shell.execute_reply":"2024-06-11T15:09:50.057589Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"soil_co2_wheat_test = pd.read_parquet(f\"/kaggle/input/the-future-crop-challenge/soil_co2_wheat_test.parquet\")","metadata":{"execution":{"iopub.status.busy":"2024-06-11T15:10:05.155946Z","iopub.execute_input":"2024-06-11T15:10:05.156341Z","iopub.status.idle":"2024-06-11T15:10:05.266062Z","shell.execute_reply.started":"2024-06-11T15:10:05.156288Z","shell.execute_reply":"2024-06-11T15:10:05.265048Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"soil_co2_wheat_test['yield'] = wheat_train['soil_co2'].join(wheat_train['target'])['yield'].mean()","metadata":{"execution":{"iopub.status.busy":"2024-06-11T15:10:13.227788Z","iopub.execute_input":"2024-06-11T15:10:13.228168Z","iopub.status.idle":"2024-06-11T15:10:13.246349Z","shell.execute_reply.started":"2024-06-11T15:10:13.228140Z","shell.execute_reply":"2024-06-11T15:10:13.245149Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pd.concat([soil_co2_maize_test, soil_co2_wheat_test])[['yield']].to_csv('submission.csv', index_label='ID')","metadata":{"execution":{"iopub.status.busy":"2024-06-11T15:13:24.191194Z","iopub.execute_input":"2024-06-11T15:13:24.191632Z","iopub.status.idle":"2024-06-11T15:13:26.746475Z","shell.execute_reply.started":"2024-06-11T15:13:24.191598Z","shell.execute_reply":"2024-06-11T15:13:26.745135Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}