{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ថ្ងៃកំណើតកម្តៅ\n", "\n", "កំណត់ត្រានេះផ្ទុកទិន្នន័យសីតុណ្ហភាពដែលបានរក្សាទុកនៅក្នុងឯកសារ CSV ហើយវិភាគវា។ វាចែកចាយសីតុណ្ហភាពបង្ហាញតម្លៃខ្ពស់បំផុតនិងទាបបំផុតសម្រាប់រាល់ថ្ងៃ ហើយគណនាតម្លៃ GDD។\n", "\n", "ដើម្បីប្រើកំណត់ត្រានេះ៖\n", "\n", "* ចម្លងឯកសារ `temperature.csv` ចូលក្នុងថតដូចគ្នានឹងកំណត់ត្រានេះ\n", "* រត់កោសិកាទាំងអស់ដោយប្រើប៊ូតុង **▶︎ Run** នៅលើ។ វានឹងរត់កោសិកាជ្រើសរើសហើយបន្តទៅកោសិកាបន្ទាប់។\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "នៅក្នុងកោសិកាខាងក្រោម ចាប់ផ្តើម `base_temperature` ទៅកំដៅមូលដ្ឋាននៃរុក្ខជាតិ។\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "base_temperature = 10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ឥឡូវនេះឯកសារ CSV ត្រូវតែត្រូវបានបញ្ចូលដោយប្រើ pandas\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "# Read the temperature CSV file\n", "df = pd.read_csv('temperature.csv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "សីតុណ្ហភាពឥឡូវនេះអាចត្រូវបានគូរនៅលើក្រាបបង្ហាញ។\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.figure(figsize=(20, 10))\n", "plt.plot(df['date'], df['temperature'])\n", "plt.xticks(rotation='vertical');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "នៅពេលដែលទិន្នន័យត្រូវបានអានរួច វាអាចត្រូវបានក្រុមដោយកូឡុំណ `date` ហើយសីតុណ្ហភាពអប្បបរមា និងអតិបរមាត្រូវបានប្រមូលសរុបសម្រាប់កាលបរិច្ឆេទនីមួយៗ។\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Convert datetimes to pure dates so we can group by the date\n", "df['date'] = pd.to_datetime(df['date']).dt.date\n", "\n", "# Group the data by date so it can be analyzed by date\n", "data_by_date = df.groupby('date')\n", "\n", "# Get the minimum and maximum temperatures for each date\n", "min_by_date = data_by_date.min()\n", "max_by_date = data_by_date.max()\n", "\n", "# Join the min and max temperatures into one dataframe and flatten it\n", "min_max_by_date = min_by_date.join(max_by_date, on='date', lsuffix='_min', rsuffix='_max')\n", "min_max_by_date = min_max_by_date.reset_index()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "អាចគណនារាង GDD ដោយប្រើសមីការស្តង់ដារ GDD\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def calculate_gdd(row):\n", " return ((row['temperature_max'] + row['temperature_min']) / 2) - base_temperature\n", "\n", "# Calculate the GDD for each row\n", "min_max_by_date['gdd'] = min_max_by_date.apply (lambda row: calculate_gdd(row), axis=1)\n", "\n", "# Print the results\n", "print(min_max_by_date[['date', 'gdd']].to_string(index=False))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខិតខំប្រឹងប្រែងចំពោះភាពត្រឹមត្រូវក៏ដោយ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមូលដ្ឋានគួរត្រូវបានគេចាត់ទុកជាផ្នែកប្រភពមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សវិជ្ជាជីវៈគឺផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំនិងការបកប្រែខុសណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.1" }, "metadata": { "interpreter": { "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" } } }, "nbformat": 4, "nbformat_minor": 2 }