{ "cells": [ { "cell_type": "code", "id": "initial_id", "metadata": { "collapsed": true, "ExecuteTime": { "end_time": "2024-09-06T03:13:02.862304Z", "start_time": "2024-09-06T03:13:02.701439Z" } }, "source": [ "import pandas as pd\n", "\n", "\n", "# 读取数据\n", "def read_data():\n", " 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", " df_planting = pd.read_excel('./data/2.xlsx', sheet_name=0)\n", " df_crop_details = pd.read_excel('./data/2.xlsx', sheet_name=1)\n", " return df_land, df_crop_land, df_planting, df_crop_details\n", "\n", "\n", "# 数据预处理\n", "def preprocess_data(df_land, df_crop_land, df_planting, df_crop_details):\n", " # 合并地块信息和种植信息\n", " df_merged = pd.merge(df_land, df_planting, left_on='地块名称', right_on='种植地块')\n", "\n", " # 合并作物信息和地块类型信息\n", " df_crop_details['销售单价中间值'] = df_crop_details['销售单价/(元/斤)'].apply(\n", " lambda x: (x.split('-')[0] + x.split('-')[1]) / 2)\n", " df_final = pd.merge(df_merged, df_crop_details, on=['作物编号', '作物名称', '地块类型', '种植季次'])\n", "\n", " return df_final\n", "\n", "\n", "# 计算总产量和总销售收入\n", "def calculate_stats(df_final):\n", " df_final['总产量'] = df_final['亩产量/斤'] * df_final['种植面积/亩']\n", " df_final['总销售收入'] = df_final['总产量'] * df_final['销售单价中间值']\n", "\n", " # 按地块类型和作物名称分组统计\n", " df_grouped = df_final.groupby(['地块类型', '作物名称']).agg({'总产量': 'sum', '总销售收入': 'sum'}).reset_index()\n", "\n", " # 按作物名称统计\n", " df_crop_stats = df_final.groupby('作物名称').agg({'总产量': 'sum', '总销售收入': 'sum'}).reset_index()\n", "\n", " return df_grouped, df_crop_stats\n", "\n", "\n", "df_land, df_crop_land, df_planting, df_crop_details = read_data()\n", "print(read_data())" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "( landName landType landArea\n", "0 A1 平旱地 80.0\n", "1 A2 平旱地 55.0\n", "2 A3 平旱地 35.0\n", "3 A4 平旱地 72.0\n", "4 A5 平旱地 68.0\n", "5 A6 平旱地 55.0\n", "6 B1 梯田 60.0\n", "7 B2 梯田 46.0\n", "8 B3 梯田 40.0\n", "9 B4 梯田 28.0\n", "10 B5 梯田 25.0\n", "11 B6 梯田 86.0\n", "12 B7 梯田 55.0\n", "13 B8 梯田 44.0\n", "14 B9 梯田 50.0\n", "15 B10 梯田 25.0\n", "16 B11 梯田 60.0\n", "17 B12 梯田 45.0\n", "18 B13 梯田 35.0\n", "19 B14 梯田 20.0\n", "20 C1 山坡地 15.0\n", "21 C2 山坡地 13.0\n", "22 C3 山坡地 15.0\n", "23 C4 山坡地 18.0\n", "24 C5 山坡地 27.0\n", "25 C6 山坡地 20.0\n", "26 D1 水浇地 15.0\n", "27 D2 水浇地 10.0\n", "28 D3 水浇地 14.0\n", "29 D4 水浇地 6.0\n", "30 D5 水浇地 10.0\n", "31 D6 水浇地 12.0\n", "32 D7 水浇地 22.0\n", "33 D8 水浇地 20.0\n", "34 E1 普通大棚 0.6\n", "35 E2 普通大棚 0.6\n", "36 E3 普通大棚 0.6\n", "37 E4 普通大棚 0.6\n", "38 E5 普通大棚 0.6\n", "39 E6 普通大棚 0.6\n", "40 E7 普通大棚 0.6\n", "41 E8 普通大棚 0.6\n", "42 E9 普通大棚 0.6\n", "43 E10 普通大棚 0.6\n", "44 E11 普通大棚 0.6\n", "45 E12 普通大棚 0.6\n", "46 E13 普通大棚 0.6\n", "47 E14 普通大棚 0.6\n", "48 E15 普通大棚 0.6\n", "49 E16 普通大棚 0.6\n", "50 F1 智慧大棚 0.6\n", "51 F2 智慧大棚 0.6\n", "52 F3 智慧大棚 0.6\n", "53 F4 智慧大棚 0.6, cropNum cropName cropType cropLandType\n", "0 1 黄豆 粮食(豆类) 平旱地 梯田 山坡地\n", "1 2 黑豆 粮食(豆类) 平旱地 梯田 山坡地\n", "2 3 红豆 粮食(豆类) 平旱地 梯田 山坡地\n", "3 4 绿豆 粮食(豆类) 平旱地 梯田 山坡地\n", "4 5 爬豆 粮食(豆类) 平旱地 梯田 山坡地\n", "5 6 小麦 粮食 平旱地 梯田 山坡地\n", "6 7 玉米 粮食 平旱地 梯田 山坡地\n", "7 8 谷子 粮食 平旱地 梯田 山坡地\n", "8 9 高粱 粮食 平旱地 梯田 山坡地\n", "9 10 黍子 粮食 平旱地 梯田 山坡地\n", "10 11 荞麦 粮食 平旱地 梯田 山坡地\n", "11 12 南瓜 粮食 平旱地 梯田 山坡地\n", "12 13 红薯 粮食 平旱地 梯田 山坡地\n", "13 14 莜麦 粮食 平旱地 梯田 山坡地\n", "14 15 大麦 粮食 平旱地 梯田 山坡地\n", "15 16 水稻 粮食 水浇地第一季 水浇地第二季\n", "16 17 豇豆 蔬菜(豆类) 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "17 18 刀豆 蔬菜(豆类) 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "18 19 芸豆 蔬菜(豆类) 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "19 20 土豆 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "20 21 西红柿 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "21 22 茄子 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "22 23 菠菜 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "23 24 青椒 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "24 25 菜花 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "25 26 包菜 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "26 27 油麦菜 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "27 28 小青菜 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "28 29 黄瓜 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "29 30 生菜 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "30 31 辣椒 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "31 32 空心菜 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "32 33 黄心菜 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "33 34 芹菜 蔬菜 水浇地第一季 普通大棚第一季 智慧大棚第一季 智慧大棚第二季\n", "34 35 大白菜 蔬菜 水浇地第二季\n", "35 36 白萝卜 蔬菜 水浇地第二季\n", "36 37 红萝卜 蔬菜 水浇地第二季\n", "37 38 榆黄菇 食用菌 普通大棚第二季\n", "38 39 香菇 食用菌 普通大棚第二季\n", "39 40 白灵菇 食用菌 普通大棚第二季\n", "40 41 羊肚菌 食用菌 普通大棚第二季, landName cropNum cropName cropType plantArea season\n", "0 A1 6 小麦 粮食 80.0 单季\n", "1 A2 7 玉米 粮食 55.0 单季\n", "2 A3 7 玉米 粮食 35.0 单季\n", "3 A4 1 黄豆 粮食(豆类) 72.0 单季\n", "4 A5 4 绿豆 粮食(豆类) 68.0 单季\n", ".. ... ... ... ... ... ...\n", "82 NaN 28 小青菜 蔬菜 0.3 第二季\n", "83 NaN 30 生菜 蔬菜 0.3 第二季\n", "84 F4 19 芸豆 蔬菜(豆类) 0.6 第一季\n", "85 NaN 34 芹菜 蔬菜 0.3 第二季\n", "86 NaN 23 菠菜 蔬菜 0.3 第二季\n", "\n", "[87 rows x 6 columns], no cropNum cropName cropLandType season unitYield cost price\n", "0 1 1 黄豆 平旱地 单季 400 400 2.50-4.00\n", "1 2 2 黑豆 平旱地 单季 500 400 6.50-8.50\n", "2 3 3 红豆 平旱地 单季 400 350 7.50-9.00\n", "3 4 4 绿豆 平旱地 单季 350 350 6.00-8.00\n", "4 5 5 爬豆 平旱地 单季 415 350 6.00-7.50\n", ".. ... ... ... ... ... ... ... ...\n", "102 103 30 生菜 智慧大棚 第二季 4500 2200 5.40-7.20\n", "103 104 31 辣椒 智慧大棚 第二季 1800 1300 7.20-10.20\n", "104 105 32 空心菜 智慧大棚 第二季 11000 5500 3.60-7.20\n", "105 106 33 黄心菜 智慧大棚 第二季 5400 2750 4.80-6.00\n", "106 107 34 芹菜 智慧大棚 第二季 6000 1200 3.80-5.80\n", "\n", "[107 rows x 8 columns])\n" ] } ], "execution_count": 62 }, { "metadata": { "ExecuteTime": { "end_time": "2024-09-06T03:13:02.924946Z", "start_time": "2024-09-06T03:13:02.864285Z" } }, "cell_type": "code", "source": [ "df_final = preprocess_data(df_land, df_crop_land, df_planting, df_crop_details)\n", "df_grouped, df_crop_stats = calculate_stats(df_final)\n", "\n", "print(\"按地块类型和作物名称统计的总产量和总销售收入:\")\n", "print(df_grouped)\n", "print(\"\\n按作物名称统计的总产量和总销售收入:\")\n", "print(df_crop_stats)" ], "id": "6fa8c4cce80d25ef", "outputs": [ { "ename": "KeyError", "evalue": "'种植地块'", "output_type": "error", "traceback": [ "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", "\u001B[1;31mKeyError\u001B[0m Traceback (most recent call last)", "Cell \u001B[1;32mIn[63], line 1\u001B[0m\n\u001B[1;32m----> 1\u001B[0m df_final \u001B[38;5;241m=\u001B[39m \u001B[43mpreprocess_data\u001B[49m\u001B[43m(\u001B[49m\u001B[43mdf_land\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mdf_crop_land\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mdf_planting\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mdf_crop_details\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 2\u001B[0m df_grouped, df_crop_stats \u001B[38;5;241m=\u001B[39m calculate_stats(df_final)\n\u001B[0;32m 4\u001B[0m \u001B[38;5;28mprint\u001B[39m(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124m按地块类型和作物名称统计的总产量和总销售收入:\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n", "Cell \u001B[1;32mIn[62], line 16\u001B[0m, in \u001B[0;36mpreprocess_data\u001B[1;34m(df_land, df_crop_land, df_planting, df_crop_details)\u001B[0m\n\u001B[0;32m 14\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mpreprocess_data\u001B[39m(df_land, df_crop_land, df_planting, df_crop_details):\n\u001B[0;32m 15\u001B[0m \u001B[38;5;66;03m# 合并地块信息和种植信息\u001B[39;00m\n\u001B[1;32m---> 16\u001B[0m df_merged \u001B[38;5;241m=\u001B[39m \u001B[43mpd\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mmerge\u001B[49m\u001B[43m(\u001B[49m\u001B[43mdf_land\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mdf_planting\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mleft_on\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43m地块名称\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mright_on\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43m种植地块\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\n\u001B[0;32m 18\u001B[0m \u001B[38;5;66;03m# 合并作物信息和地块类型信息\u001B[39;00m\n\u001B[0;32m 19\u001B[0m df_crop_details[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124m销售单价中间值\u001B[39m\u001B[38;5;124m'\u001B[39m] \u001B[38;5;241m=\u001B[39m df_crop_details[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124m销售单价/(元/斤)\u001B[39m\u001B[38;5;124m'\u001B[39m]\u001B[38;5;241m.\u001B[39mapply(\n\u001B[0;32m 20\u001B[0m \u001B[38;5;28;01mlambda\u001B[39;00m x: (x\u001B[38;5;241m.\u001B[39msplit(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124m-\u001B[39m\u001B[38;5;124m'\u001B[39m)[\u001B[38;5;241m0\u001B[39m] \u001B[38;5;241m+\u001B[39m x\u001B[38;5;241m.\u001B[39msplit(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124m-\u001B[39m\u001B[38;5;124m'\u001B[39m)[\u001B[38;5;241m1\u001B[39m]) \u001B[38;5;241m/\u001B[39m \u001B[38;5;241m2\u001B[39m)\n", "File \u001B[1;32mD:\\Anaconda\\envs\\lite\\lib\\site-packages\\pandas\\core\\reshape\\merge.py:169\u001B[0m, in \u001B[0;36mmerge\u001B[1;34m(left, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator, validate)\u001B[0m\n\u001B[0;32m 154\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m _cross_merge(\n\u001B[0;32m 155\u001B[0m left_df,\n\u001B[0;32m 156\u001B[0m right_df,\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 166\u001B[0m copy\u001B[38;5;241m=\u001B[39mcopy,\n\u001B[0;32m 167\u001B[0m )\n\u001B[0;32m 168\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m--> 169\u001B[0m op \u001B[38;5;241m=\u001B[39m \u001B[43m_MergeOperation\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m 170\u001B[0m \u001B[43m \u001B[49m\u001B[43mleft_df\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 171\u001B[0m \u001B[43m \u001B[49m\u001B[43mright_df\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 172\u001B[0m \u001B[43m \u001B[49m\u001B[43mhow\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mhow\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 173\u001B[0m \u001B[43m \u001B[49m\u001B[43mon\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mon\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 174\u001B[0m \u001B[43m \u001B[49m\u001B[43mleft_on\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mleft_on\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 175\u001B[0m \u001B[43m \u001B[49m\u001B[43mright_on\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mright_on\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 176\u001B[0m \u001B[43m \u001B[49m\u001B[43mleft_index\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mleft_index\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 177\u001B[0m \u001B[43m \u001B[49m\u001B[43mright_index\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mright_index\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 178\u001B[0m \u001B[43m \u001B[49m\u001B[43msort\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43msort\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 179\u001B[0m \u001B[43m \u001B[49m\u001B[43msuffixes\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43msuffixes\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 180\u001B[0m \u001B[43m \u001B[49m\u001B[43mindicator\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mindicator\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 181\u001B[0m \u001B[43m \u001B[49m\u001B[43mvalidate\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mvalidate\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 182\u001B[0m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 183\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m op\u001B[38;5;241m.\u001B[39mget_result(copy\u001B[38;5;241m=\u001B[39mcopy)\n", "File \u001B[1;32mD:\\Anaconda\\envs\\lite\\lib\\site-packages\\pandas\\core\\reshape\\merge.py:791\u001B[0m, in \u001B[0;36m_MergeOperation.__init__\u001B[1;34m(self, left, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, indicator, validate)\u001B[0m\n\u001B[0;32m 781\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m MergeError(msg)\n\u001B[0;32m 783\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mleft_on, \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mright_on \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_validate_left_right_on(left_on, right_on)\n\u001B[0;32m 785\u001B[0m (\n\u001B[0;32m 786\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mleft_join_keys,\n\u001B[0;32m 787\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mright_join_keys,\n\u001B[0;32m 788\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mjoin_names,\n\u001B[0;32m 789\u001B[0m left_drop,\n\u001B[0;32m 790\u001B[0m right_drop,\n\u001B[1;32m--> 791\u001B[0m ) \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_get_merge_keys\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 793\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m left_drop:\n\u001B[0;32m 794\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mleft \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mleft\u001B[38;5;241m.\u001B[39m_drop_labels_or_levels(left_drop)\n", "File \u001B[1;32mD:\\Anaconda\\envs\\lite\\lib\\site-packages\\pandas\\core\\reshape\\merge.py:1269\u001B[0m, in \u001B[0;36m_MergeOperation._get_merge_keys\u001B[1;34m(self)\u001B[0m\n\u001B[0;32m 1267\u001B[0m rk \u001B[38;5;241m=\u001B[39m cast(Hashable, rk)\n\u001B[0;32m 1268\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m rk \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[1;32m-> 1269\u001B[0m right_keys\u001B[38;5;241m.\u001B[39mappend(\u001B[43mright\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_get_label_or_level_values\u001B[49m\u001B[43m(\u001B[49m\u001B[43mrk\u001B[49m\u001B[43m)\u001B[49m)\n\u001B[0;32m 1270\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[0;32m 1271\u001B[0m \u001B[38;5;66;03m# work-around for merge_asof(right_index=True)\u001B[39;00m\n\u001B[0;32m 1272\u001B[0m right_keys\u001B[38;5;241m.\u001B[39mappend(right\u001B[38;5;241m.\u001B[39mindex\u001B[38;5;241m.\u001B[39m_values)\n", "File \u001B[1;32mD:\\Anaconda\\envs\\lite\\lib\\site-packages\\pandas\\core\\generic.py:1844\u001B[0m, in \u001B[0;36mNDFrame._get_label_or_level_values\u001B[1;34m(self, key, axis)\u001B[0m\n\u001B[0;32m 1842\u001B[0m values \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39maxes[axis]\u001B[38;5;241m.\u001B[39mget_level_values(key)\u001B[38;5;241m.\u001B[39m_values\n\u001B[0;32m 1843\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m-> 1844\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mKeyError\u001B[39;00m(key)\n\u001B[0;32m 1846\u001B[0m \u001B[38;5;66;03m# Check for duplicates\u001B[39;00m\n\u001B[0;32m 1847\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m values\u001B[38;5;241m.\u001B[39mndim \u001B[38;5;241m>\u001B[39m \u001B[38;5;241m1\u001B[39m:\n", "\u001B[1;31mKeyError\u001B[0m: '种植地块'" ] } ], "execution_count": 63 }, { "metadata": { "ExecuteTime": { "end_time": "2024-09-06T03:21:35.298725Z", "start_time": "2024-09-06T03:21:35.267092Z" } }, "cell_type": "code", "source": [ "import enum\n", "\n", "\n", "# class LandType(enum.Enum):\n", "# # A = 0\n", "# # B = 1\n", "# # C = 2\n", "# # D = 3\n", "# # E = 4\n", "# # F = 5\n", "# A = \"平旱地\"\n", "# B = \"梯田\"\n", "# C = \"山坡地\"\n", "# D = \"水浇地\"\n", "# E = \"普通大棚\"\n", "# F = \"智慧大棚\"\n", "\n", "LandType = {\"A\": \"平旱地\", \"B\": \"梯田\", \"C\": \"山坡地\", \"D\": \"水浇地\", \"E\": \"普通大棚\", \"F\": \"智慧大棚\"}\n", "\n", "class Land:\n", " landName = \"\"\n", " landType = \"\"\n", " landArea = 0\n", "\n", " def __init__(self, land_name, land_type, land_area):\n", " self.landName = land_name\n", " self.landType = land_type\n", " self.landArea = land_area\n", "\n", " def __str__(self):\n", " return f\"地块名称:{self.landName}, 地块类型:{self.landType}, 地块面积:{self.landArea}\"\n", "\n", " def __repr__(self):\n", " return self.__str__()\n", "\n", "\n", "df_land = pd.read_excel('./data/1.xlsx', sheet_name=0)\n", "land_list = []\n", "for i in range(len(df_land)):\n", " land_list.append(Land(df_land.loc[i, 'landName'], df_land.loc[i, 'landType'], df_land.loc[i, 'landArea']))\n" ], "id": "de7eae459d5ac038", "outputs": [], "execution_count": 81 }, { "metadata": { "ExecuteTime": { "end_time": "2024-09-06T03:21:35.889930Z", "start_time": "2024-09-06T03:21:35.834548Z" } }, "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": "1b344bb5c5ceca6", "outputs": [], "execution_count": 82 }, { "metadata": { "ExecuteTime": { "end_time": "2024-09-06T03:21:36.358909Z", "start_time": "2024-09-06T03:21:36.342806Z" } }, "cell_type": "code", "source": "df_crop_details", "id": "2a7d4e6303a8ce7d", "outputs": [ { "data": { "text/plain": [ " no cropNum cropName cropLandType season unitYield cost price\n", "0 1 1 黄豆 平旱地 单季 400 400 2.50-4.00\n", "1 2 2 黑豆 平旱地 单季 500 400 6.50-8.50\n", "2 3 3 红豆 平旱地 单季 400 350 7.50-9.00\n", "3 4 4 绿豆 平旱地 单季 350 350 6.00-8.00\n", "4 5 5 爬豆 平旱地 单季 415 350 6.00-7.50\n", ".. ... ... ... ... ... ... ... ...\n", "102 103 30 生菜 智慧大棚 第二季 4500 2200 5.40-7.20\n", "103 104 31 辣椒 智慧大棚 第二季 1800 1300 7.20-10.20\n", "104 105 32 空心菜 智慧大棚 第二季 11000 5500 3.60-7.20\n", "105 106 33 黄心菜 智慧大棚 第二季 5400 2750 4.80-6.00\n", "106 107 34 芹菜 智慧大棚 第二季 6000 1200 3.80-5.80\n", "\n", "[107 rows x 8 columns]" ], "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nocropNumcropNamecropLandTypeseasonunitYieldcostprice
011黄豆平旱地单季4004002.50-4.00
122黑豆平旱地单季5004006.50-8.50
233红豆平旱地单季4003507.50-9.00
344绿豆平旱地单季3503506.00-8.00
455爬豆平旱地单季4153506.00-7.50
...........................
10210330生菜智慧大棚第二季450022005.40-7.20
10310431辣椒智慧大棚第二季180013007.20-10.20
10410532空心菜智慧大棚第二季1100055003.60-7.20
10510633黄心菜智慧大棚第二季540027504.80-6.00
10610734芹菜智慧大棚第二季600012003.80-5.80
\n", "

107 rows × 8 columns

\n", "
" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 83 }, { "metadata": { "ExecuteTime": { "end_time": "2024-09-06T03:21:36.920063Z", "start_time": "2024-09-06T03:21:36.906066Z" } }, "cell_type": "code", "source": "df_planting", "id": "cb078daf97226df9", "outputs": [ { "data": { "text/plain": [ " landName cropNum cropName cropType plantArea season\n", "0 A1 6 小麦 粮食 80.0 单季\n", "1 A2 7 玉米 粮食 55.0 单季\n", "2 A3 7 玉米 粮食 35.0 单季\n", "3 A4 1 黄豆 粮食(豆类) 72.0 单季\n", "4 A5 4 绿豆 粮食(豆类) 68.0 单季\n", ".. ... ... ... ... ... ...\n", "82 NaN 28 小青菜 蔬菜 0.3 第二季\n", "83 NaN 30 生菜 蔬菜 0.3 第二季\n", "84 F4 19 芸豆 蔬菜(豆类) 0.6 第一季\n", "85 NaN 34 芹菜 蔬菜 0.3 第二季\n", "86 NaN 23 菠菜 蔬菜 0.3 第二季\n", "\n", "[87 rows x 6 columns]" ], "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
landNamecropNumcropNamecropTypeplantAreaseason
0A16小麦粮食80.0单季
1A27玉米粮食55.0单季
2A37玉米粮食35.0单季
3A41黄豆粮食(豆类)72.0单季
4A54绿豆粮食(豆类)68.0单季
.....................
82NaN28小青菜蔬菜0.3第二季
83NaN30生菜蔬菜0.3第二季
84F419芸豆蔬菜(豆类)0.6第一季
85NaN34芹菜蔬菜0.3第二季
86NaN23菠菜蔬菜0.3第二季
\n", "

87 rows × 6 columns

\n", "
" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 84 }, { "metadata": { "ExecuteTime": { "end_time": "2024-09-06T03:21:37.434419Z", "start_time": "2024-09-06T03:21:37.423314Z" } }, "cell_type": "code", "source": [ "# 定义过滤条件\n", "condition = (df_crop_details['cropNum'] == 8) & (df_crop_details['cropLandType'] == '平旱地') & (\n", " df_crop_details['season'] == '单季')\n", "\n", "# 应用过滤条件\n", "filtered_df = df_crop_details[condition]\n", "filtered_df.cost" ], "id": "a87c7c7cd60851e8", "outputs": [ { "data": { "text/plain": [ "7 360\n", "Name: cost, dtype: int64" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 85 }, { "metadata": { "ExecuteTime": { "end_time": "2024-09-06T03:43:12.430452Z", "start_time": "2024-09-06T03:43:12.417025Z" } }, "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 = 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", "def get_crop_yield(crop_num, crop_land_type, season):\n", " if crop_land_type==\"智慧大棚\" and season==\"第一季\":\n", " crop_land_type = \"普通大棚\"\n", " return 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", "def get_crop_cost(crop_num, crop_land_type, season):\n", " if crop_land_type==\"智慧大棚\" and season==\"第一季\":\n", " crop_land_type = \"普通大棚\"\n", " return 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]" ], "id": "c1aeae8d35dfaba4", "outputs": [], "execution_count": 103 }, { "metadata": { "ExecuteTime": { "end_time": "2024-09-06T03:31:21.848658Z", "start_time": "2024-09-06T03:31:21.830790Z" } }, "cell_type": "code", "source": "get_crop_price(8, '平旱地', '单季')", "id": "fbb6f17a3fa0be", "outputs": [ { "data": { "text/plain": [ "6.75" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 97 }, { "metadata": { "ExecuteTime": { "end_time": "2024-09-06T03:29:24.789254Z", "start_time": "2024-09-06T03:29:24.778904Z" } }, "cell_type": "code", "source": [ "df_planting['landName'] = df_planting['landName'].ffill()\n", "df_crop_details['cropLandType'] = df_crop_details['cropLandType'].str.rstrip()" ], "id": "badbb5129135f9b2", "outputs": [], "execution_count": 94 }, { "metadata": { "ExecuteTime": { "end_time": "2024-09-06T03:45:53.605223Z", "start_time": "2024-09-06T03:45:53.517449Z" } }, "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)\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", "total_profit" ], "id": "924b12d0f8978284", "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['A1' 6 '小麦' '粮食' 80.0 '单季']\n", "6 平旱地 单季\n", "['A2' 7 '玉米' '粮食' 55.0 '单季']\n", "7 平旱地 单季\n", "['A3' 7 '玉米' '粮食' 35.0 '单季']\n", "7 平旱地 单季\n", "['A4' 1 '黄豆' '粮食(豆类)' 72.0 '单季']\n", "1 平旱地 单季\n", "['A5' 4 '绿豆' '粮食(豆类)' 68.0 '单季']\n", "4 平旱地 单季\n", "['A6' 8 '谷子' '粮食' 55.0 '单季']\n", "8 平旱地 单季\n", "['B1' 6 '小麦' '粮食' 60.0 '单季']\n", "6 梯田 单季\n", "['B2' 2 '黑豆' '粮食(豆类)' 46.0 '单季']\n", "2 梯田 单季\n", "['B3' 3 '红豆' '粮食(豆类)' 40.0 '单季']\n", "3 梯田 单季\n", "['B4' 4 '绿豆' '粮食(豆类)' 28.0 '单季']\n", "4 梯田 单季\n", "['B5' 5 '爬豆' '粮食(豆类)' 25.0 '单季']\n", "5 梯田 单季\n", "['B6' 8 '谷子' '粮食' 86.0 '单季']\n", "8 梯田 单季\n", "['B7' 6 '小麦' '粮食' 55.0 '单季']\n", "6 梯田 单季\n", "['B8' 8 '谷子' '粮食' 44.0 '单季']\n", "8 梯田 单季\n", "['B9' 9 '高粱' '粮食' 50.0 '单季']\n", "9 梯田 单季\n", "['B10' 10 '黍子' '粮食' 25.0 '单季']\n", "10 梯田 单季\n", "['B11' 1 '黄豆' '粮食(豆类)' 60.0 '单季']\n", "1 梯田 单季\n", "['B12' 7 '玉米' '粮食' 45.0 '单季']\n", "7 梯田 单季\n", "['B13' 14 '莜麦' '粮食' 35.0 '单季']\n", "14 梯田 单季\n", "['B14' 15 '大麦' '粮食' 20.0 '单季']\n", "15 梯田 单季\n", "['C1' 11 '荞麦' '粮食' 15.0 '单季']\n", "11 山坡地 单季\n", "['C2' 12 '南瓜' '粮食' 13.0 '单季']\n", "12 山坡地 单季\n", "['C3' 1 '黄豆' '粮食(豆类)' 15.0 '单季']\n", "1 山坡地 单季\n", "['C4' 13 '红薯' '粮食' 18.0 '单季']\n", "13 山坡地 单季\n", "['C5' 6 '小麦' '粮食' 27.0 '单季']\n", "6 山坡地 单季\n", "['C6' 3 '红豆' '粮食(豆类)' 20.0 '单季']\n", "3 山坡地 单季\n", "['D1' 20 '土豆' '蔬菜 ' 15.0 '第一季']\n", "20 水浇地 第一季\n", "['D1' 36 '白萝卜' '蔬菜 ' 15.0 '第二季']\n", "36 水浇地 第二季\n", "['D2' 28 '小青菜' '蔬菜 ' 10.0 '第一季']\n", "28 水浇地 第一季\n", "['D2' 35 '大白菜' '蔬菜 ' 10.0 '第二季']\n", "35 水浇地 第二季\n", "['D3' 21 '西红柿' '蔬菜 ' 14.0 '第一季']\n", "21 水浇地 第一季\n", "['D3' 35 '大白菜' '蔬菜 ' 14.0 '第二季']\n", "35 水浇地 第二季\n", "['D4' 22 '茄子' '蔬菜 ' 6.0 '第一季']\n", "22 水浇地 第一季\n", "['D4' 35 '大白菜' '蔬菜 ' 6.0 '第二季']\n", "35 水浇地 第二季\n", "['D5' 17 '豇豆' '蔬菜(豆类)' 10.0 '第一季']\n", "17 水浇地 第一季\n", "['D5' 36 '白萝卜' '蔬菜 ' 10.0 '第二季']\n", "36 水浇地 第二季\n", "['D6' 18 '刀豆' '蔬菜(豆类)' 12.0 '第一季']\n", "18 水浇地 第一季\n", "['D6' 37 '红萝卜' '蔬菜 ' 12.0 '第二季']\n", "37 水浇地 第二季\n", "['D7' 16 '水稻' '粮食' 22.0 '单季']\n", "16 水浇地 单季\n", "['D8' 16 '水稻' '粮食' 20.0 '单季']\n", "16 水浇地 单季\n", "['E1' 18 '刀豆' '蔬菜(豆类)' 0.6 '第一季']\n", "18 普通大棚 第一季\n", "['E1' 38 '榆黄菇' '食用菌' 0.6 '第二季']\n", "38 普通大棚 第二季\n", "['E2' 24 '青椒' '蔬菜 ' 0.6 '第一季']\n", "24 普通大棚 第一季\n", "['E2' 38 '榆黄菇' '食用菌' 0.6 '第二季']\n", "38 普通大棚 第二季\n", "['E3' 25 '菜花' '蔬菜 ' 0.6 '第一季']\n", "25 普通大棚 第一季\n", "['E3' 38 '榆黄菇' '食用菌' 0.6 '第二季']\n", "38 普通大棚 第二季\n", "['E4' 26 '包菜' '蔬菜 ' 0.6 '第一季']\n", "26 普通大棚 第一季\n", "['E4' 39 '香菇' '食用菌' 0.6 '第二季']\n", "39 普通大棚 第二季\n", "['E5' 28 '小青菜' '蔬菜 ' 0.6 '第一季']\n", "28 普通大棚 第一季\n", "['E5' 39 '香菇' '食用菌' 0.6 '第二季']\n", "39 普通大棚 第二季\n", "['E6' 27 '油麦菜' '蔬菜 ' 0.6 '第一季']\n", "27 普通大棚 第一季\n", "['E6' 39 '香菇' '食用菌' 0.6 '第二季']\n", "39 普通大棚 第二季\n", "['E7' 19 '芸豆' '蔬菜(豆类)' 0.6 '第一季']\n", "19 普通大棚 第一季\n", "['E7' 40 '白灵菇' '食用菌' 0.6 '第二季']\n", "40 普通大棚 第二季\n", "['E8' 19 '芸豆' '蔬菜(豆类)' 0.6 '第一季']\n", "19 普通大棚 第一季\n", "['E8' 40 '白灵菇' '食用菌' 0.6 '第二季']\n", "40 普通大棚 第二季\n", "['E9' 18 '刀豆' '蔬菜(豆类)' 0.6 '第一季']\n", "18 普通大棚 第一季\n", "['E9' 40 '白灵菇' '食用菌' 0.6 '第二季']\n", "40 普通大棚 第二季\n", "['E10' 17 '豇豆' '蔬菜(豆类)' 0.6 '第一季']\n", "17 普通大棚 第一季\n", "['E10' 41 '羊肚菌' '食用菌' 0.6 '第二季']\n", "41 普通大棚 第二季\n", "['E11' 17 '豇豆' '蔬菜(豆类)' 0.6 '第一季']\n", "17 普通大棚 第一季\n", "['E11' 41 '羊肚菌' '食用菌' 0.6 '第二季']\n", "41 普通大棚 第二季\n", "['E12' 22 '茄子' '蔬菜 ' 0.6 '第一季']\n", "22 普通大棚 第一季\n", "['E12' 41 '羊肚菌' '食用菌' 0.6 '第二季']\n", "41 普通大棚 第二季\n", "['E13' 21 '西红柿' '蔬菜 ' 0.6 '第一季']\n", "21 普通大棚 第一季\n", "['E13' 41 '羊肚菌' '食用菌' 0.6 '第二季']\n", "41 普通大棚 第二季\n", "['E14' 29 '黄瓜' '蔬菜 ' 0.6 '第一季']\n", "29 普通大棚 第一季\n", "['E14' 41 '羊肚菌' '食用菌' 0.6 '第二季']\n", "41 普通大棚 第二季\n", "['E15' 30 '生菜' '蔬菜 ' 0.3 '第一季']\n", "30 普通大棚 第一季\n", "['E15' 27 '油麦菜' '蔬菜 ' 0.3 '第一季']\n", "27 普通大棚 第一季\n", "['E15' 41 '羊肚菌' '食用菌' 0.6 '第二季']\n", "41 普通大棚 第二季\n", "['E16' 31 '辣椒' '蔬菜 ' 0.6 '第一季']\n", "31 普通大棚 第一季\n", "['E16' 41 '羊肚菌' '食用菌' 0.6 '第二季']\n", "41 普通大棚 第二季\n", "['F1' 32 '空心菜' '蔬菜 ' 0.3 '第一季']\n", "32 智慧大棚 第一季\n", "['F1' 33 '黄心菜' '蔬菜 ' 0.3 '第一季']\n", "33 智慧大棚 第一季\n", "['F1' 24 '青椒' '蔬菜 ' 0.3 '第二季']\n", "24 智慧大棚 第二季\n", "['F1' 21 '西红柿' '蔬菜 ' 0.3 '第二季']\n", "21 智慧大棚 第二季\n", "['F2' 25 '菜花' '蔬菜 ' 0.3 '第一季']\n", "25 智慧大棚 第一季\n", "['F2' 26 '包菜' '蔬菜 ' 0.3 '第一季']\n", "26 智慧大棚 第一季\n", "['F2' 22 '茄子' '蔬菜 ' 0.3 '第二季']\n", "22 智慧大棚 第二季\n", "['F2' 29 '黄瓜' '蔬菜 ' 0.3 '第二季']\n", "29 智慧大棚 第二季\n", "['F3' 17 '豇豆' '蔬菜(豆类)' 0.6 '第一季']\n", "17 智慧大棚 第一季\n", "['F3' 28 '小青菜' '蔬菜 ' 0.3 '第二季']\n", "28 智慧大棚 第二季\n", "['F3' 30 '生菜 ' '蔬菜 ' 0.3 '第二季']\n", "30 智慧大棚 第二季\n", "['F4' 19 '芸豆' '蔬菜(豆类)' 0.6 '第一季']\n", "19 智慧大棚 第一季\n", "['F4' 34 '芹菜' '蔬菜 ' 0.3 '第二季']\n", "34 智慧大棚 第二季\n", "['F4' 23 '菠菜 ' '蔬菜 ' 0.3 '第二季']\n", "23 智慧大棚 第二季\n" ] }, { "data": { "text/plain": [ "{1: 126450.0,\n", " 2: 145475.0,\n", " 3: 163800.0,\n", " 4: 197680.0,\n", " 5: 57906.25,\n", " 6: 498040.0,\n", " 7: 330750.0,\n", " 8: 415350.0,\n", " 9: 160000.0,\n", " 10: 84750.0,\n", " 11: 54750.0,\n", " 12: 39650.0,\n", " 13: 81000.0,\n", " 14: 63000.0,\n", " 15: 28000.0,\n", " 16: 118440.0,\n", " 17: 267520.0,\n", " 18: 168000.0,\n", " 19: 37800.0,\n", " 20: 82500.0,\n", " 21: 197093.0,\n", " 22: 237624.0,\n", " 23: 5310.0,\n", " 24: 13098.0,\n", " 25: 17100.0,\n", " 26: 23175.0,\n", " 27: 20700.0,\n", " 28: 187392.0,\n", " 29: 93765.0,\n", " 30: 15120.000000000002,\n", " 31: 7980.0,\n", " 32: 14700.0,\n", " 33: 7350.0,\n", " 34: 8280.0,\n", " 35: 315000.0,\n", " 36: 237500.0,\n", " 37: 111000.0,\n", " 38: 512100.0,\n", " 39: 133200.0,\n", " 40: 270000.0,\n", " 41: 378000.0}" ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 107 }, { "metadata": {}, "cell_type": "code", "outputs": [], "execution_count": null, "source": "", "id": "944704309ea97c8e" } ], "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 }