2024-09-06 07:16:37 +00:00
|
|
|
{
|
|
|
|
|
"cells": [
|
|
|
|
|
{
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"source": "# 对于每种作物的数据统计",
|
|
|
|
|
"id": "493d1cd2ba436df4"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"id": "initial_id",
|
|
|
|
|
"metadata": {
|
|
|
|
|
"collapsed": true,
|
|
|
|
|
"ExecuteTime": {
|
2024-09-06 08:11:59 +00:00
|
|
|
"end_time": "2024-09-06T08:09:09.618585Z",
|
|
|
|
|
"start_time": "2024-09-06T08:09:09.599851Z"
|
2024-09-06 07:16:37 +00:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"source": [
|
|
|
|
|
"import pandas as pd\n",
|
2024-09-06 08:11:59 +00:00
|
|
|
"import matplotlib\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"# 指定默认字体为支持中文的字体\n",
|
|
|
|
|
"matplotlib.rcParams['font.family'] = 'Microsoft YaHei' # 或者 'SimHei' 'SimSun', 'Microsoft YaHei'\n",
|
|
|
|
|
"matplotlib.rcParams['axes.unicode_minus'] = False # 用来正常显示负号\n",
|
2024-09-06 07:16:37 +00:00
|
|
|
"\n",
|
|
|
|
|
"LandType = {\"A\": \"平旱地\", \"B\": \"梯田\", \"C\": \"山坡地\", \"D\": \"水浇地\", \"E\": \"普通大棚\", \"F\": \"智慧大棚\"}\n"
|
|
|
|
|
],
|
|
|
|
|
"outputs": [],
|
2024-09-06 08:11:59 +00:00
|
|
|
"execution_count": 24
|
2024-09-06 07:16:37 +00:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"metadata": {
|
|
|
|
|
"ExecuteTime": {
|
|
|
|
|
"end_time": "2024-09-06T06:38:36.915607Z",
|
|
|
|
|
"start_time": "2024-09-06T06:38:36.482384Z"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"source": [
|
|
|
|
|
"df_planting = pd.read_excel('./data/2.xlsx', sheet_name=0)\n",
|
|
|
|
|
"df_crop_details = pd.read_excel('./data/2.xlsx', sheet_name=1)"
|
|
|
|
|
],
|
|
|
|
|
"id": "9f4633f8e90ffe1a",
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"execution_count": 2
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"metadata": {
|
|
|
|
|
"ExecuteTime": {
|
|
|
|
|
"end_time": "2024-09-06T06:38:36.931334Z",
|
|
|
|
|
"start_time": "2024-09-06T06:38:36.917487Z"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"source": [
|
|
|
|
|
"df_planting['landName'] = df_planting['landName'].ffill()\n",
|
|
|
|
|
"df_crop_details['cropLandType'] = df_crop_details['cropLandType'].str.rstrip()"
|
|
|
|
|
],
|
|
|
|
|
"id": "ef9302cf0dc64751",
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"execution_count": 3
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"metadata": {
|
|
|
|
|
"ExecuteTime": {
|
|
|
|
|
"end_time": "2024-09-06T06:38:36.946802Z",
|
|
|
|
|
"start_time": "2024-09-06T06:38:36.932693Z"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"source": [
|
|
|
|
|
"def get_crop_price(crop_num, crop_land_type, season):\n",
|
|
|
|
|
" if crop_land_type == \"智慧大棚\" and season == \"第一季\":\n",
|
|
|
|
|
" crop_land_type = \"普通大棚\"\n",
|
|
|
|
|
" s = \\\n",
|
|
|
|
|
" df_crop_details[(df_crop_details['cropNum'] == crop_num) & (df_crop_details['cropLandType'] == crop_land_type) & (\n",
|
|
|
|
|
" df_crop_details['season'] == season)].price.values[0].split('-')\n",
|
|
|
|
|
" return (float(s[0]) + float(s[1])) / 2\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"def get_crop_yield(crop_num, crop_land_type, season):\n",
|
|
|
|
|
" if crop_land_type == \"智慧大棚\" and season == \"第一季\":\n",
|
|
|
|
|
" crop_land_type = \"普通大棚\"\n",
|
|
|
|
|
" return \\\n",
|
|
|
|
|
" df_crop_details[(df_crop_details['cropNum'] == crop_num) & (df_crop_details['cropLandType'] == crop_land_type) & (\n",
|
|
|
|
|
" df_crop_details['season'] == season)].unitYield.values[0]\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"def get_crop_cost(crop_num, crop_land_type, season):\n",
|
|
|
|
|
" if crop_land_type == \"智慧大棚\" and season == \"第一季\":\n",
|
|
|
|
|
" crop_land_type = \"普通大棚\"\n",
|
|
|
|
|
" return \\\n",
|
|
|
|
|
" df_crop_details[(df_crop_details['cropNum'] == crop_num) & (df_crop_details['cropLandType'] == crop_land_type) & (\n",
|
|
|
|
|
" df_crop_details['season'] == season)].cost.values[0]\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"def get_crop_profit(crop_num, crop_land_type, season):\n",
|
|
|
|
|
" return get_crop_yield(crop_num, crop_land_type, season) * get_crop_price(crop_num, crop_land_type, season) - get_crop_cost(crop_num, crop_land_type, season)"
|
|
|
|
|
],
|
|
|
|
|
"id": "6571c03dd0a145d",
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"execution_count": 4
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"metadata": {
|
|
|
|
|
"ExecuteTime": {
|
|
|
|
|
"end_time": "2024-09-06T06:38:37.380747Z",
|
|
|
|
|
"start_time": "2024-09-06T06:38:37.293442Z"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"source": [
|
|
|
|
|
"total_yield = {crop: 0 for crop in df_crop_details['cropNum'].unique()}\n",
|
|
|
|
|
"total_cost = {crop: 0 for crop in df_crop_details['cropNum'].unique()}\n",
|
|
|
|
|
"total_income = {crop: 0 for crop in df_crop_details['cropNum'].unique()}\n",
|
|
|
|
|
"total_profit = {crop: 0 for crop in df_crop_details['cropNum'].unique()}\n",
|
|
|
|
|
"for line in df_planting.values:\n",
|
|
|
|
|
" # print(line[1], LandType[line[0][0]], line[5])\n",
|
|
|
|
|
" yld = line[4] * get_crop_yield(line[1], LandType[line[0][0]], line[5])\n",
|
|
|
|
|
" cost = line[4] * get_crop_cost(line[1], LandType[line[0][0]], line[5])\n",
|
|
|
|
|
" income = yld * get_crop_price(line[1], LandType[line[0][0]], line[5])\n",
|
|
|
|
|
" profit = income - cost\n",
|
|
|
|
|
"\n",
|
|
|
|
|
" total_yield[line[1]] += yld\n",
|
|
|
|
|
" total_cost[line[1]] += cost\n",
|
|
|
|
|
" total_income[line[1]] += income\n",
|
|
|
|
|
" total_profit[line[1]] += profit\n",
|
|
|
|
|
"print(total_yield) # 总产量\n",
|
|
|
|
|
"print(total_cost) # 总开销\n",
|
|
|
|
|
"print(total_income) # 总收入\n",
|
|
|
|
|
"print(total_profit) # 总利润"
|
|
|
|
|
],
|
|
|
|
|
"id": "483a03b545d80063",
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"text": [
|
|
|
|
|
"{1: 57000.0, 2: 21850.0, 3: 22400.0, 4: 33040.0, 5: 9875.0, 6: 170840.0, 7: 132750.0, 8: 71400.0, 9: 30000.0, 10: 12500.0, 11: 1500.0, 12: 35100.0, 13: 36000.0, 14: 14000.0, 15: 10000.0, 16: 21000.0, 17: 36480.0, 18: 26880.0, 19: 6480.0, 20: 30000.0, 21: 36210.0, 22: 45360.0, 23: 900.0, 24: 2610.0, 25: 3600.0, 26: 4050.0, 27: 4500.0, 28: 35480.0, 29: 13050.0, 30: 2850.0, 31: 1200.0, 32: 3600.0, 33: 1800.0, 34: 1800.0, 35: 150000.0, 36: 100000.0, 37: 36000.0, 38: 9000.0, 39: 7200.0, 40: 18000.0, 41: 4200.0}\n",
|
|
|
|
|
"{1: 58800.0, 2: 18400.0, 3: 21000.0, 4: 33600.0, 5: 8750.0, 6: 99900.0, 7: 67500.0, 8: 66600.0, 9: 20000.0, 10: 9000.0, 11: 5250.0, 12: 13000.0, 13: 36000.0, 14: 14000.0, 15: 7000.0, 16: 28560.0, 17: 24320.0, 18: 13440.0, 19: 4320.0, 20: 30000.0, 21: 30232.0, 22: 14232.0, 23: 900.0, 24: 1860.0, 25: 2700.0, 26: 3150.0, 27: 1800.0, 28: 17860.0, 29: 3255.0, 30: 1260.0, 31: 720.0, 32: 1500.0, 33: 750.0, 34: 360.0, 35: 60000.0, 36: 12500.0, 37: 6000.0, 38: 5400.0, 39: 3600.0, 40: 18000.0, 41: 42000.0}\n",
|
|
|
|
|
"{1: 185250.0, 2: 163875.0, 3: 184800.0, 4: 231280.0, 5: 66656.25, 6: 597940.0, 7: 398250.0, 8: 481950.0, 9: 180000.0, 10: 93750.0, 11: 60000.0, 12: 52650.0, 13: 117000.0, 14: 77000.0, 15: 35000.0, 16: 147000.0, 17: 291840.0, 18: 181440.0, 19: 42120.0, 20: 112500.0, 21: 227325.0, 22: 251856.0, 23: 6210.0, 24: 14958.0, 25: 19800.0, 26: 26325.0, 27: 22500.0, 28: 205252.0, 29: 97020.0, 30: 16380.000000000002, 31: 8700.0, 32: 16200.0, 33: 8100.0, 34: 8640.0, 35: 375000.0, 36: 250000.0, 37: 117000.0, 38: 517500.0, 39: 136800.0, 40: 288000.0, 41: 420000.0}\n",
|
|
|
|
|
"{1: 126450.0, 2: 145475.0, 3: 163800.0, 4: 197680.0, 5: 57906.25, 6: 498040.0, 7: 330750.0, 8: 415350.0, 9: 160000.0, 10: 84750.0, 11: 54750.0, 12: 39650.0, 13: 81000.0, 14: 63000.0, 15: 28000.0, 16: 118440.0, 17: 267520.0, 18: 168000.0, 19: 37800.0, 20: 82500.0, 21: 197093.0, 22: 237624.0, 23: 5310.0, 24: 13098.0, 25: 17100.0, 26: 23175.0, 27: 20700.0, 28: 187392.0, 29: 93765.0, 30: 15120.000000000002, 31: 7980.0, 32: 14700.0, 33: 7350.0, 34: 8280.0, 35: 315000.0, 36: 237500.0, 37: 111000.0, 38: 512100.0, 39: 133200.0, 40: 270000.0, 41: 378000.0}\n"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"execution_count": 5
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"source": "# 对每种类型的地块中的种植情况和盈利情况进行统计",
|
|
|
|
|
"id": "aa7b13944d227aa3"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"metadata": {
|
|
|
|
|
"ExecuteTime": {
|
|
|
|
|
"end_time": "2024-09-06T06:38:38.680027Z",
|
|
|
|
|
"start_time": "2024-09-06T06:38:38.640023Z"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"source": [
|
|
|
|
|
"df_land = pd.read_excel('./data/1.xlsx', sheet_name=0)\n",
|
|
|
|
|
"df_crop_land = pd.read_excel('./data/1.xlsx', sheet_name=1)\n"
|
|
|
|
|
],
|
|
|
|
|
"id": "49e1827ce35f0e3b",
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"execution_count": 6
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"metadata": {
|
|
|
|
|
"ExecuteTime": {
|
|
|
|
|
"end_time": "2024-09-06T06:39:45.321314Z",
|
|
|
|
|
"start_time": "2024-09-06T06:39:45.200761Z"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"source": [
|
|
|
|
|
"print(\"---------------------\")\n",
|
|
|
|
|
"land_crop_stats = {land_type:{} for land_type in LandType.keys()}\n",
|
|
|
|
|
"# 该变量存储的内容例如{\"A\":{\"1\":[field, profit] }}表示在A类型的地块中种植的作物编号为1的作物的总产量和总利润\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"for land in df_land.values:\n",
|
|
|
|
|
" print(land[0], land[1], land[2])\n",
|
|
|
|
|
" for crop in df_planting.values:\n",
|
|
|
|
|
" if crop[0] == land[0]:\n",
|
|
|
|
|
" print(crop[1], crop[2], crop[3], crop[4], crop[5])\n",
|
|
|
|
|
" land_crop_stats[land[0][0]][crop[1]] = [get_crop_yield(crop[1], LandType[land[0][0]], crop[5]), 0]\n",
|
|
|
|
|
" land_crop_stats[land[0][0]][crop[1]][1] += get_crop_profit(crop[1], LandType[land[0][0]], crop[5])\n",
|
|
|
|
|
" print(\"---------------------\")\n",
|
|
|
|
|
"print(land_crop_stats)"
|
|
|
|
|
],
|
|
|
|
|
"id": "54504f6c133b1508",
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"text": [
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"A1 平旱地 80.0\n",
|
|
|
|
|
"6 小麦 粮食 80.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"A2 平旱地 55.0\n",
|
|
|
|
|
"7 玉米 粮食 55.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"A3 平旱地 35.0\n",
|
|
|
|
|
"7 玉米 粮食 35.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"A4 平旱地 72.0\n",
|
|
|
|
|
"1 黄豆 粮食(豆类) 72.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"A5 平旱地 68.0\n",
|
|
|
|
|
"4 绿豆 粮食(豆类) 68.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"A6 平旱地 55.0\n",
|
|
|
|
|
"8 谷子 粮食 55.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B1 梯田 60.0\n",
|
|
|
|
|
"6 小麦 粮食 60.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B2 梯田 46.0\n",
|
|
|
|
|
"2 黑豆 粮食(豆类) 46.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B3 梯田 40.0\n",
|
|
|
|
|
"3 红豆 粮食(豆类) 40.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B4 梯田 28.0\n",
|
|
|
|
|
"4 绿豆 粮食(豆类) 28.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B5 梯田 25.0\n",
|
|
|
|
|
"5 爬豆 粮食(豆类) 25.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B6 梯田 86.0\n",
|
|
|
|
|
"8 谷子 粮食 86.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B7 梯田 55.0\n",
|
|
|
|
|
"6 小麦 粮食 55.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B8 梯田 44.0\n",
|
|
|
|
|
"8 谷子 粮食 44.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B9 梯田 50.0\n",
|
|
|
|
|
"9 高粱 粮食 50.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B10 梯田 25.0\n",
|
|
|
|
|
"10 黍子 粮食 25.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B11 梯田 60.0\n",
|
|
|
|
|
"1 黄豆 粮食(豆类) 60.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B12 梯田 45.0\n",
|
|
|
|
|
"7 玉米 粮食 45.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B13 梯田 35.0\n",
|
|
|
|
|
"14 莜麦 粮食 35.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"B14 梯田 20.0\n",
|
|
|
|
|
"15 大麦 粮食 20.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"C1 山坡地 15.0\n",
|
|
|
|
|
"11 荞麦 粮食 15.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"C2 山坡地 13.0\n",
|
|
|
|
|
"12 南瓜 粮食 13.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"C3 山坡地 15.0\n",
|
|
|
|
|
"1 黄豆 粮食(豆类) 15.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"C4 山坡地 18.0\n",
|
|
|
|
|
"13 红薯 粮食 18.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"C5 山坡地 27.0\n",
|
|
|
|
|
"6 小麦 粮食 27.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"C6 山坡地 20.0\n",
|
|
|
|
|
"3 红豆 粮食(豆类) 20.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"D1 水浇地 15.0\n",
|
|
|
|
|
"20 土豆 蔬菜 15.0 第一季\n",
|
|
|
|
|
"36 白萝卜 蔬菜 15.0 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"D2 水浇地 10.0\n",
|
|
|
|
|
"28 小青菜 蔬菜 10.0 第一季\n",
|
|
|
|
|
"35 大白菜 蔬菜 10.0 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"D3 水浇地 14.0\n",
|
|
|
|
|
"21 西红柿 蔬菜 14.0 第一季\n",
|
|
|
|
|
"35 大白菜 蔬菜 14.0 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"D4 水浇地 6.0\n",
|
|
|
|
|
"22 茄子 蔬菜 6.0 第一季\n",
|
|
|
|
|
"35 大白菜 蔬菜 6.0 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"D5 水浇地 10.0\n",
|
|
|
|
|
"17 豇豆 蔬菜(豆类) 10.0 第一季\n",
|
|
|
|
|
"36 白萝卜 蔬菜 10.0 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"D6 水浇地 12.0\n",
|
|
|
|
|
"18 刀豆 蔬菜(豆类) 12.0 第一季\n",
|
|
|
|
|
"37 红萝卜 蔬菜 12.0 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"D7 水浇地 22.0\n",
|
|
|
|
|
"16 水稻 粮食 22.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"D8 水浇地 20.0\n",
|
|
|
|
|
"16 水稻 粮食 20.0 单季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E1 普通大棚 0.6\n",
|
|
|
|
|
"18 刀豆 蔬菜(豆类) 0.6 第一季\n",
|
|
|
|
|
"38 榆黄菇 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E2 普通大棚 0.6\n",
|
|
|
|
|
"24 青椒 蔬菜 0.6 第一季\n",
|
|
|
|
|
"38 榆黄菇 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E3 普通大棚 0.6\n",
|
|
|
|
|
"25 菜花 蔬菜 0.6 第一季\n",
|
|
|
|
|
"38 榆黄菇 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E4 普通大棚 0.6\n",
|
|
|
|
|
"26 包菜 蔬菜 0.6 第一季\n",
|
|
|
|
|
"39 香菇 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E5 普通大棚 0.6\n",
|
|
|
|
|
"28 小青菜 蔬菜 0.6 第一季\n",
|
|
|
|
|
"39 香菇 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E6 普通大棚 0.6\n",
|
|
|
|
|
"27 油麦菜 蔬菜 0.6 第一季\n",
|
|
|
|
|
"39 香菇 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E7 普通大棚 0.6\n",
|
|
|
|
|
"19 芸豆 蔬菜(豆类) 0.6 第一季\n",
|
|
|
|
|
"40 白灵菇 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E8 普通大棚 0.6\n",
|
|
|
|
|
"19 芸豆 蔬菜(豆类) 0.6 第一季\n",
|
|
|
|
|
"40 白灵菇 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E9 普通大棚 0.6\n",
|
|
|
|
|
"18 刀豆 蔬菜(豆类) 0.6 第一季\n",
|
|
|
|
|
"40 白灵菇 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E10 普通大棚 0.6\n",
|
|
|
|
|
"17 豇豆 蔬菜(豆类) 0.6 第一季\n",
|
|
|
|
|
"41 羊肚菌 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E11 普通大棚 0.6\n",
|
|
|
|
|
"17 豇豆 蔬菜(豆类) 0.6 第一季\n",
|
|
|
|
|
"41 羊肚菌 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E12 普通大棚 0.6\n",
|
|
|
|
|
"22 茄子 蔬菜 0.6 第一季\n",
|
|
|
|
|
"41 羊肚菌 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E13 普通大棚 0.6\n",
|
|
|
|
|
"21 西红柿 蔬菜 0.6 第一季\n",
|
|
|
|
|
"41 羊肚菌 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E14 普通大棚 0.6\n",
|
|
|
|
|
"29 黄瓜 蔬菜 0.6 第一季\n",
|
|
|
|
|
"41 羊肚菌 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E15 普通大棚 0.6\n",
|
|
|
|
|
"30 生菜 蔬菜 0.3 第一季\n",
|
|
|
|
|
"27 油麦菜 蔬菜 0.3 第一季\n",
|
|
|
|
|
"41 羊肚菌 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"E16 普通大棚 0.6\n",
|
|
|
|
|
"31 辣椒 蔬菜 0.6 第一季\n",
|
|
|
|
|
"41 羊肚菌 食用菌 0.6 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"F1 智慧大棚 0.6\n",
|
|
|
|
|
"32 空心菜 蔬菜 0.3 第一季\n",
|
|
|
|
|
"33 黄心菜 蔬菜 0.3 第一季\n",
|
|
|
|
|
"24 青椒 蔬菜 0.3 第二季\n",
|
|
|
|
|
"21 西红柿 蔬菜 0.3 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"F2 智慧大棚 0.6\n",
|
|
|
|
|
"25 菜花 蔬菜 0.3 第一季\n",
|
|
|
|
|
"26 包菜 蔬菜 0.3 第一季\n",
|
|
|
|
|
"22 茄子 蔬菜 0.3 第二季\n",
|
|
|
|
|
"29 黄瓜 蔬菜 0.3 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"F3 智慧大棚 0.6\n",
|
|
|
|
|
"17 豇豆 蔬菜(豆类) 0.6 第一季\n",
|
|
|
|
|
"28 小青菜 蔬菜 0.3 第二季\n",
|
|
|
|
|
"30 生菜 蔬菜 0.3 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"F4 智慧大棚 0.6\n",
|
|
|
|
|
"19 芸豆 蔬菜(豆类) 0.6 第一季\n",
|
|
|
|
|
"34 芹菜 蔬菜 0.3 第二季\n",
|
|
|
|
|
"23 菠菜 蔬菜 0.3 第二季\n",
|
|
|
|
|
"---------------------\n",
|
|
|
|
|
"{'A': {6: [800, 2350.0], 7: [1000, 2500.0], 1: [400, 900.0], 4: [350, 2100.0], 8: [400, 2340.0]}, 'B': {6: [760, 2210.0], 2: [475, 3162.5], 3: [380, 2785.0], 4: [330, 1960.0], 5: [395, 2316.25], 8: [380, 2205.0], 9: [600, 3200.0], 10: [500, 3390.0], 1: [380, 835.0], 7: [950, 2350.0], 14: [400, 1800.0], 15: [500, 1400.0]}, 'C': {11: [100, 3650.0], 12: [2700, 3050.0], 1: [360, 770.0], 13: [2000, 4500.0], 6: [720, 2070.0], 3: [360, 2620.0]}, 'D': {20: [2000, 5500.0], 36: [4000, 9500.0], 28: [3200, 16800.0], 35: [5000, 10500.0], 21: [2400, 13000.0], 22: [6400, 33200.0], 17: [3000, 22000.0], 18: [2000, 12500.0], 37: [3000, 9250.0], 16: [500, 2820.0]}, 'E': {18: [2400, 15000.0], 38: [5000, 284500.0], 24: [3000, 13750.0], 25: [4000, 19000.0], 26: [4500, 25750.0], 39: [4000, 74000.0], 28: [4000, 21000.0], 27: [5000, 23000.0], 19: [3600, 21000.0], 40: [10000, 150000.0], 17: [3600, 26400.0], 41: [1000, 90000.0], 22: [8000, 41600.0], 21: [3000, 16350.0], 29: [15000, 101500.0], 30: [5000, 24250.0], 31: [2000, 13300.0]}, 'F': {32: [12000, 49000.0], 33: [6000, 24500.0], 24: [2700, 16160.0], 21: [2700, 17610.0], 25: [4000, 19000.0], 26: [4500, 25750.0], 22: [7200, 44880.0], 29: [13500, 109550.0], 17: [3600, 26400.0], 28: [3600, 22640.0], 30: [4500, 26150.000000000004], 19: [3600, 21000.0], 34: [6000, 27600.0], 23: [3000, 17700.0]}}\n"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"execution_count": 8
|
|
|
|
|
},
|
2024-09-06 08:11:59 +00:00
|
|
|
{
|
|
|
|
|
"metadata": {
|
|
|
|
|
"ExecuteTime": {
|
|
|
|
|
"end_time": "2024-09-06T08:09:14.856806Z",
|
|
|
|
|
"start_time": "2024-09-06T08:09:14.771032Z"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"source": [
|
|
|
|
|
"import matplotlib.pyplot as plt\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"# 提取作物编号和对应的利润\n",
|
|
|
|
|
"crop_ids = list(land_crop_stats['A'].keys())\n",
|
|
|
|
|
"profits = [info[1] for info in land_crop_stats['A'].values()]\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"# 创建饼图\n",
|
|
|
|
|
"plt.figure(figsize=(8, 8))\n",
|
|
|
|
|
"plt.pie(profits, labels=crop_ids, autopct='%1.1f%%', startangle=140)\n",
|
|
|
|
|
"plt.title('Profit Distribution for Land Type A啊啊啊')\n",
|
|
|
|
|
"plt.show()"
|
|
|
|
|
],
|
|
|
|
|
"id": "d0ab1b80cf38a2d1",
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"data": {
|
|
|
|
|
"text/plain": [
|
|
|
|
|
"<Figure size 800x800 with 1 Axes>"
|
|
|
|
|
],
|
|
|
|
|
"image/png": "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DRITE/Hcc881/hJw+n+bjz/+GBEREU2uyrSX2WzGlClTcO655yIkJARhYWEYOXJkk1vzp379zZkzBz169ICfnx8GDhyITZs2NTvmvHnzMGDAAGi1WsTHx2P8+PEdzndSdXU1AgICcNlllzX72MmvpZNZTn5+Tv86eu6555p8HZ087rPPPov4+Hj4+PigV69emDt3bptzTZ8+HT179sRNN92Ea6+9FjNmzDjr18CpNmzYgPPPPx8ajQY33ngjQkJCEBISgvvvv7/N59+wYQMuvvhiFBUVNb4+JCQEq1atatPrCwoKUFBQgEGDBmHy5MmNr+/WrVubMxA5AgsfuZRdu3YBANLT05s8/uqrryIqKgpz587FBRdcAIPBgOHDh+Pdd9/Ftddei2+++QZvvvkm9u/fjwsuuACbN28G0FACnn32WQANt1+XLVuGyy+/vNl53333XbzzzjsAgGeffRbLli3Dc8891+H3cffdd0OhUGDevHktflyWZVx22WX4+eef8Z///Adz587FI488gpqamjPmvuuuu5oc4/7778ett96K7777DlFRUWfMsmvXLtxzzz245ZZbMGvWLFx88cX44IMPGo/fVlFRUVi2bFljQVi2bBmWLVuGPn36tPj84uJiDBo0CDNnzsSYMWMwd+5cvPjii1izZg0GDx7cbGxiTU0NRo8ejYsvvhgzZsxAamoqxo4de9YJJ3fddVfjbcvLLrsMy5Ytw7vvvgsA2LRpEwYPHozt27fjtddew3fffYcbb7wRU6ZMwSWXXIL6+vomx9q5cye++OILfPjhh3j11Vfb9bk5VVFREd5//31cd911mDlzJl577TWsX78eN910U7Pi8uuvv+KTTz7Byy+/jHfffRdZWVm49tprm0wGmDlzJm666Sb4+/tj+vTpePPNN/H999/j119/7XBGoOGK92233Ya1a9ciPz+/ycdmz56NjIyMJrdFT/86uvTSSzFp0qQmt/aNRiMuvfRSTJ8+HY888gjmzJmD9PR03HHHHViyZEmrmfR6PRYsWICHHnoIQMPYzKysrDYPFzhZ1k6aP38+Zs6c2abXAoDFYsHmzZsbjxEUFARZljFs2LA2H2P9+vWNpRMAnnrqKRw/frzNrydyFN7SJaEMBgNqamqg1+uxePFiTJgwAYMGDcLIkSObPK9Lly6YPn1649/fe+89bNmyBXPnzsVtt93W+Phtt92G1NRUvPDCC9i0aROGDRvW+M321Nuvp1/JGjRoEOrq6gAAvXv37vRtr6CgIERERJzxG71er8e+ffvwzDPPNA4iP9WZcp/qlltuaVNpO3jwIHbv3o20tLTG19XV1WH69Ol4+eWXWxwf1RJfX1+MGDEC33//PQC0+jkaO3YssrKysGnTJpx33nmNj19zzTXo06cPXn/9dXzzzTeNj5eWluKbb75pPO5VV12FuLg4zJ0794xXaFJTUxvHocXFxTXJ9PDDDyMoKAjbtm1rHGN10003IT09HQ8//DDmzJmDBx54oPH5Bw4cQFZWVps/H2cSERGBAwcONBmDqtfr8dZbb+HEiRNISkpqfLyyshJ//vkntFotgIaxng8++CCWLl2KO++8E0ajEc8//zwGDBiANWvWQKVq+JZ9/fXXo3v37p3KCTR8jmbMmIHvv/++8WspOzsb69atazYxp6W
|
|
|
|
|
},
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"execution_count": 25
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"metadata": {
|
|
|
|
|
"ExecuteTime": {
|
|
|
|
|
"end_time": "2024-09-06T07:56:00.789409Z",
|
|
|
|
|
"start_time": "2024-09-06T07:56:00.779094Z"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"source": [
|
|
|
|
|
"# 数据导出\n",
|
|
|
|
|
"def get_crop_name(crop_num):\n",
|
|
|
|
|
" return df_crop_details[df_crop_details['cropNum'] == crop_num]['cropName'].values[0]\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"land_crop_stats_A = {get_crop_name(crop_num):v for crop_num, v in land_crop_stats['A'].items()}\n",
|
|
|
|
|
"land_crop_stats_A"
|
|
|
|
|
],
|
|
|
|
|
"id": "c072743a8ac6f911",
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"data": {
|
|
|
|
|
"text/plain": [
|
|
|
|
|
"{'小麦': [800, 2350.0],\n",
|
|
|
|
|
" '玉米': [1000, 2500.0],\n",
|
|
|
|
|
" '黄豆': [400, 900.0],\n",
|
|
|
|
|
" '绿豆': [350, 2100.0],\n",
|
|
|
|
|
" '谷子': [400, 2340.0]}"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"execution_count": 14,
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "execute_result"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"execution_count": 14
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"metadata": {
|
|
|
|
|
"ExecuteTime": {
|
|
|
|
|
"end_time": "2024-09-06T08:00:34.699835Z",
|
|
|
|
|
"start_time": "2024-09-06T08:00:34.632874Z"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"source": [
|
|
|
|
|
"import pandas as pd\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"# 创建一个Excel写入器\n",
|
|
|
|
|
"with pd.ExcelWriter('land_crop_stats.xlsx') as writer:\n",
|
|
|
|
|
" for land_type in ['A', 'B', 'C', 'D', 'E', 'F']:\n",
|
|
|
|
|
" # 转换数据格式\n",
|
|
|
|
|
" land_crop_stats_land = {get_crop_name(crop_num): v for crop_num, v in land_crop_stats[land_type].items()}\n",
|
|
|
|
|
" df = pd.DataFrame.from_dict(land_crop_stats_land, orient='index', columns=['产量', '利润'])\n",
|
|
|
|
|
" df.reset_index(inplace=True)\n",
|
|
|
|
|
" df.rename(columns={'index': '作物'}, inplace=True)\n",
|
|
|
|
|
" \n",
|
|
|
|
|
" # 写入对应的sheet\n",
|
|
|
|
|
" df.to_excel(writer, sheet_name=land_type, index=False)\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"print(\"Excel文件已成功导出为 'land_crop_stats.xlsx'\")\n"
|
|
|
|
|
],
|
|
|
|
|
"id": "2f358e6cfe30db3d",
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"text": [
|
|
|
|
|
"Excel文件已成功导出为 'land_crop_stats.xlsx'\n"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"execution_count": 15
|
|
|
|
|
},
|
2024-09-06 07:16:37 +00:00
|
|
|
{
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"execution_count": null,
|
|
|
|
|
"source": "",
|
2024-09-06 08:11:59 +00:00
|
|
|
"id": "fd23d207b8344fac"
|
2024-09-06 07:16:37 +00:00
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"metadata": {
|
|
|
|
|
"kernelspec": {
|
|
|
|
|
"display_name": "Python 3",
|
|
|
|
|
"language": "python",
|
|
|
|
|
"name": "python3"
|
|
|
|
|
},
|
|
|
|
|
"language_info": {
|
|
|
|
|
"codemirror_mode": {
|
|
|
|
|
"name": "ipython",
|
|
|
|
|
"version": 2
|
|
|
|
|
},
|
|
|
|
|
"file_extension": ".py",
|
|
|
|
|
"mimetype": "text/x-python",
|
|
|
|
|
"name": "python",
|
|
|
|
|
"nbconvert_exporter": "python",
|
|
|
|
|
"pygments_lexer": "ipython2",
|
|
|
|
|
"version": "2.7.6"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"nbformat": 4,
|
|
|
|
|
"nbformat_minor": 5
|
|
|
|
|
}
|