@ -1,60 +1,62 @@
# ការធ្វើការ ជាមួយទិន្នន័យ៖ Python និងបណ្ណាល័យ Pandas
# ការដំណើរការ ជាមួយទិន្នន័យ៖ Python និងបណ្ណាល័យ Pandas
|  ](../../sketchnotes/07-WorkWithPython.png) |
|  ](../../sketchnotes/07-WorkWithPython.png) |
| :-------------------------------------------------------------------------------------------------------: |
| ការធ្វើការជាមួយ Python - _Sketchnote by [@nitya](https://twitter.com/nitya)_ |
| ការដំណើរការជាមួយ Python - _Sketchnote ដោយ [@nitya](https://twitter.com/nitya)_ |
[](https://youtu.be/dZjWOGbsN4Y)
[](https://youtu.be/dZjWOGbsN4Y)
ខណៈដែលមូលដ្ឋានទិន្នន័យផ្តល់នូវ វិធីសាស្រ្តមានប្រសិទ្ធភាពខ្ពស់ក្នុងការផ្ទុកទិន្នន័យ និងស្វែងរកតាមភាសាស្វែងរក គន្លឹះបត់បែនបំផុតក្នុងការដំណើរការទិន្នន័យ គឺការសរសេរកម្មវិធីដើម្បីប្រែក្លាយទិន្នន័យ។ ក្នុងច្រើនពេលវេលា ការស្វែងរកមូលដ្ឋានទិន្នន័យ នឹងជាវិធីមានប្រសិទ្ធភាពជាង។ ប៉ុន្តែក្នុងករណីខ្លះដែលត្រូវការដំណើរការទិន្នន័យ ស្មុគស្មាញជាងនេះ វាមិនអាចធ្វើបាន យ៉ាងងាយស្រួលនៅ តាមរយៈ SQL នោះ ទេ។
ការដំណើរការទិន្នន័យអាចត្រូវបានកម្មវិធីដោយភាសាបញ្ញាសិប្បនិម្មិតណាមួយក៏បាន ប៉ុន្តែមានភាសាខ្លះៗដែលមានកម្រិតខ្ពស់ជាងទាក់ទងនឹងការធ្វើ ការជាមួយទិន្នន័យ។ អ្នកវិទ្យាសាស្ត្រទិន្នន័យភាគច្រើនចូលចិត្តប្រើ ភាសាដូចខាងក្រោម៖
ខណៈដែលប្រព័ន្ធទិន្នន័យផ្តល់ជូន វិធីសាស្រ្តមានប្រសិទ្ធភាពខ្ពស់ក្នុងការរក្សាទិន្នន័យ និងស្វែងរកសំណួរតាមភាសាសំណួរ វិធីសាស្រ្តដែលមានភាពបត់បែនបំផុតក្នុងការចុះបញ្ជីទិន្នន័យគឺការសរសេរកម្មវិធីផ្ទាល់របស់អ្នកដើម្បីផ្លាស់ប្តូរទិន្នន័យ។ នៅក្នុងករណីជាច្រើន ការស្វែងរកទិន្នន័យក្នុងប្រព័ន្ធទិន្នន័យអាចជាជម្រើសមានប្រសិទ្ធភាពជាង។ ប៉ុន្តែ នៅក្នុងករណីខ្លះៗ នៅពេលដែលត្រូវការចុះបញ្ជីទិន្នន័យ ស្មុគស្មាញជាងនេះ វាមិនអាចធ្វើបានយ៉ាងងាយស្រួលតាមរយៈ SQL ទេ។
ការដំណើរការទិន្នន័យអាចត្រូវបានចុះបញ្ជីជាកម្មវិធីនៅក្នុងភាសាកម្មវិធីណាមួយក៏ដោយ ប៉ុន្តែមានភាសារមួយចំនួនដែលមានកម្រិតខ្ពស់ជាងសម្រាប់ការដំណើរ ការជាមួយទិន្នន័យ។ អ្នកវិទ្យាសាស្ត្រទិន្នន័យភាគច្រើនចូលចិត្តភាសាមួយក្នុងចំណោម ភាសាដូចខាងក្រោម៖
* ** [Python ](https://www.python.org/ )**, ភាសាកម្មវិធីទូទៅមួយ ដែលជាញឹកញាប់ត្រូវបា នគេចាត់ទុកថាជាជម្រើសល្អសម្រាប់អ្នកចាប់ផ្តើមដោយសារតែកែបំណងស្រាល ។ Python មានបណ្ណាល័យបន្ថែមជា ច្រើនដែលអាច ជួយដោះស្រាយបញ្ហាទូទៅជាច្រើន ដូចជាការដកទិន្នន័យពីឯកសារ ZIP ឬបម្លែងរូបភាពទៅពណ៌ប្រផេះ។ បន្ថែមពីការវិទ្យាសាស្ត្រទិន្នន័យ Python ក៏ត្រូវបានប្រើសម្រាប់ការអភិវឌ្ឍបណ្ដាញគេហទំព័រផងដែរ។
* ** [R ](https://www.r-project.org/ )** គឺជាឧបករណ៍ប្រអប់ធម្មតាមួយដែលបានបង្កើតសម្រាប់លទ្ធផល ដំណើរការទិន្នន័យស្ថិតិ។ វាក៏មានបណ្ណាល័យធំមួយ (CRAN) ដែលធ្វើឱ ្យវាជាជម្រើសល្អសម្រាប់ដំណើរការទិន្នន័យ។ តែក្រៅពីវិស័យវិទ្យាសាស្ត្រទិន្នន័យ R មិនមែនជាភាសាកម្មវិធីទូទៅទេ ហើយត្រូវបានប្រើប្រាស់តិចនៅក្រៅវិស័យនេះ។
* ** [Julia ](https://julialang.org/ )** គឺជាភាសាមួយផ្សេងទៀតដែលបានបង្កើតឡើងជាពិសេសសម្រាប់វិជ្ជាវិទ្យាសាស្ត្រទិន្នន័យ។ វាត្រូវបានគោលបំណងដើម្បីផ្ដល់សមត្ថភាពល្អជាង Python ដែលធ្វើឱ្យ វាជាឧបករណ៍ល្អសម្រាប់ការសាកល្ បងវិទ្យាសាស្រ្ ត។
* ** [Python ](https://www.python.org/ )** ជាភាសាកម្មវិធីប្រើបានទូទៅ ដែលភាគច្រើ នគេចាត់ទុកថាជាជម្រើសល្អសម្រាប់អ្នកចាប់ផ្តើមដោយសារតែភាពសាមញ្ញរបស់វា ។ Python មានបណ្ណាល័យបន្ថែមច្រើនជំន ួយដល់ការ ដោះស្រាយបញ្ហាទូទៅជាច្រើន ដូចជាការដកយកទិន្នន័យពីហារីល ZIP ឬបម្លែងរូបភាពទៅជាពណ៌សម្រាប់ត្រង់។ លើសពីការសិក្សាទិន្នន័យ Python ក៏ត្រូវបានប្រើជាញឹកញាប់សម្រាប់ការវិវឌ្ឍវេបសាយផងដែរ។
* ** [R ](https://www.r-project.org/ )** ជាឧបករណ៍បុរាណមួយដែលបង្កើតឡើងសម្រាប់ការ ដំណើរការទិន្នន័យស្ថិតិ។ វាក៏មានបណ្ណាល័យធំនៅក្នុងស្តុក (CRAN) ដែលធ្វើឲ ្យវាជាជម្រើសល្អសម្រាប់ការ ដំណើរការទិន្នន័យ។ ទោះបីជាយ៉ាងណា R មិនមែនជាភាសាកម្មវិធីទូទៅទេ ហើយត្រូវបានប្រើទូទៅក្នុងដែនការសិក្សាទិន្នន័យប៉ុណ្ណោះ។
* ** [Julia ](https://julialang.org/ )** ជាភាសាផ្សេងទៀតដែលបង្កើតឡើងសម្រាប់ការសិក្សាទិន្នន័យ។ វាត្រូវបានរំពឹងទុកថានឹងផ្តល់ការអនុវត្តដែលល្អជាង Python ដូច្នេះ វាជាឧបករណ៍ល្អសម្រាប់ការប្រឡ ងវិទ្យាសាស្ត្រ ។
ក្នុងមេរៀននេះ យើងនឹងផ្តោតលើការប្រើ Python សម្រាប់ដំណើរការទិន្នន័យសាមញ្ញ។ យើងនឹងសន្មត ់ថាអ្នកមានការស្គាល់មូលដ្ឋានជាមួយភាសា។ ប្រសិនបើចង់ដឹងបន្ថែម អំពី Python អ្នកអាចយោងទៅកាន់ធនធានចំនួនមួយដូច ខាងក្រោម៖
នៅ ក្នុងមេរៀននេះ យើងនឹងផ្តោតលើការប្រើ Python សម្រាប់ការ ដំណើរការទិន្នន័យសាមញ្ញ។ យើងនឹងទទួលស្គាល ់ថាអ្នកមានការស្គាល់មូលដ្ឋានជាមួយភាសានេះ។ ប្រសិនបើអ្នកចង់មានការសិក្សាដ៏ជ្រាលជ្រៅ អំពី Python អ្នកអាចយោងទៅកាន់ធនធានខាងក្រោម៖
* [រៀន Python យ៉ាងរីករាយជាមួយក្រមសម្លេង Turtle និង Fractals](https://github.com/shwars/pycourse ) - វគ្គសិក្សាទី១សម្រាប់ការណែនាំលឿន Python លើ GitHub
* [ជំហានទីមួយ ជាមួយ Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum ) ផ្លូវសិក្សានៅ លើ [Microsoft Learn ](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum )
* [សិក្សា Python ជាដំណើរការកំសាន្តជាមួយ Turtle Graphics និង Fractals](https://github.com/shwars/pycourse ) - ការបណ្តុះបណ្តាល Python ដែលមានមូលដ្ឋាន GitHub
* [ចាប់ផ្តើមជំហានដំបូង ជាមួយ Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum ) មាតិកាអប់រំ លើ [Microsoft Learn ](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum )
ទិន្នន័យអាចមានរាងដូចជាច្រើន។ ក្នុងមេរៀននេះ យើងនឹងពិចារណាទាំងបីរាងទិន្នន័យ - ** ទិន្នន័យតារាង**, ** អត្ថបទ** និង ** រូបភាព**។
ទិន្នន័យអាចមានរាងកាយជាច្រើន। នៅក្នុងមេរៀននេះ យើងនឹងពិចារណារូបមន្តទិន្នន័យបីប្រភេទ — ** ទិន្នន័យតារាង**, ** អត្ថបទ** និង ** រូបភាព**។
យើងនឹងផ្តោតលើឧទាហរណ៍ជាច្រើននៃការដំណើរការទិន្នន័យ ដោយមិនបង្ហាញរឿងទាំងអស់នៃបណ្ណាល័យដែលទាក់ទង។ វានឹងអនុញ្ញាតឱ្យអ្នកយល់ពីគំនិតសំខាន់នៃអ្វីដែលអាចធ្វើបាន និងទុកឲ្យអ្នកយល់ថាតើគួររកការជំនួយនៅកន្លែងណា ពេលអ្នកត្រូវការ ។
យើងនឹងផ្តោតលើឧទាហរណ៍ចំនួនមួយសម្រាប់ការដំណើរការទិន្នន័យ ជំនួសការអោយបង្ហាញទាំងមូលស្តីពីបណ្ណាល័យទាំងអស់ដែលពាក់ព័ន្ធ។ វានឹងជួយអ្នកយល់ដឹងពីអ្វីដែលអាចធ្វើបាន ហើយឲ្យអ្នកមានចំណេះដឹងពីកន្លែងស្វែងរកដំណោះស្រាយនៅពេលដែលអ្នកត្រូវការពួកវា ។
> ** របៀបណែនាំដ៏មានប្រយោជន៍ បំផុត**។ នៅពេលដែលអ្នកត្រូវការធ្វើប្រតិបត្តិការណ៍ ណាមួយលើទិន្នន័យដែលអ្នកមិនដឹងធ្វើដូចម្តេច សូមស្វែងរកវាតាមអ៊ីនធឺ ណិត។ [Stackoverflow ](https://stackoverflow.com/ ) ជាទូទៅមានគំរូកូដប្រើប្រាស់បានច្រើនក្នុង Python សម្រាប់ភារកិច្ចទូទៅជាច្រើន។
> ** ដំបូន្មានមានប្រយោជន៍ បំផុត**។ នៅពេលដែលអ្នកត្រូវការធ្វើប្រតិបត្ដិការ ណាមួយលើទិន្នន័យដែលអ្នកមិនដឹងថាតើ ធ្វើដូចម្តេច សូមស្វែងរកតាមអ៊ីនធើ ណិត។ [Stackoverflow ](https://stackoverflow.com/ ) ជាទូទៅមានគំរូកូដ Python ច្រើនដែលមានប្រយោជន៍សម្រាប់បេសកកម្មទូទៅជាច្រើន។
## [សំណួរផ្ទេរមុនមេរៀន ](https://ff-quizzes.netlify.app/en/ds/quiz/12 )
## [សំណួរពិនិត្យមុនមេរៀន ](https://ff-quizzes.netlify.app/en/ds/quiz/12 )
## ទិន្នន័យតារាង និង Dataframes
អ្នកបានស្គាល់ទិន្នន័យតារាងរួច ហើយនៅពេលដែលយើងបាននិយាយពីមូលដ្ឋាន ទិន្នន័យទំនាក់ទំនង។ នៅ ពេលអ្នកមានទិន្នន័យច្រើន ហើយវាត្រូវបានផ្ទុកក្នុងតារាងភ្ជាប់គ្នាច្រើន វាជាការសមរម្យក្នុងការប្រើ SQL ដើម្បីធ្វើការងារ ។ ទោះយ៉ាងណា មានករណីជាច្រើនដែលយើងមានតារាងទិន្នន័យ ហើយយើងត្រូវការទទួលបាន ** ការយល់ដឹង** ឬ ** ការយល់កាន់តែល្អ** អំពីទិន្នន័យនេះ ដូចជា ចំណែកចាយ និងកការតភ្ជាប់រវាងតម្លៃ។ ក្នុងវិទ្យាសាស្ត្រទិន្នន័យ មានរឿងជាច្រើនដែលយើងត្រូវតែបំលែងទិន្នន័យដើមរួចបង្ហាញវា។ ទាំងពីរវិធីសាស្រ្តនោះអាចធ្វើបានយ៉ាងងាយស្រួលជាមួយ Python។
អ្នកបានស្គាល់ទិន្នន័យតារាងហើយនៅពេលដែលយើងបាននិយាយពីប្រព័ន្ធ ទិន្នន័យទំនាក់ទំនង។ ពេលដែល អ្នកមានទិន្នន័យច្រើន ហើយវាត្រូវបានផ្ទុកនៅតារាងជាច្រើនដែលភ្ជាប់គ្នា វាពិតជាមានអត្ថន័យក្នុងការប្រើ SQL រួចសម្រាប់ធ្វើការដំណើរការវា ។ ទោះយ៉ាងណា មានករណីជាច្រើនអាល ដែលយើងមានតារាងទិន្នន័យហើយត្រូវការស្វែងយល់ឬវិចារណាអំពីទិន្នន័យដូចជាការចែកចាយ ការតភ្ជាប់គ្នារវាងតម្លៃជាដើម។ នៅក្នុងវិស័យវិទ្យាសាស្ត្រទិន្នន័យ មានករណីយ៉ាងច្រើនដែលយើងត្រូវការប្រតិបត្ដិការ ការបម្លែងមួយចំនួនលើទិន្នន័យដើម ហើយបន្ទាប់មកធ្វើការបង្ហាញទិន្នន័យវិចិត្រសិល្បៈ។ ពីរជំហានទាំងនេះអាចធ្វើបានយ៉ាងងាយស្រួលដោយប្រើ Python។
មានបណ្ណាល័យពីរដែលមានប្រយោជន៍ខ្លាំងក្នុង Python ជួយអ្នកគ្រប់គ្រងទិន្នន័យតារាង៖
* ** [Pandas ](https://pandas.pydata.org/ )** អនុញ្ញាតឱ្យអ្នកដំណើរការ **Dataframes** ដែលដូចជាតារាងទំនាក់ទំនង។ អ្នកអាចមានជួរឈរឈ្មោះហើយអាចបំពេញប្រតិបត្តិការបានលើជួរដេក ជួរឈរ និង Dataframes ជាទូទៅ។
* ** [Numpy ](https://numpy.org/ )** ជាបណ្ណាល័យសម្រាប់ការងារជាមួយ **tensor** គឺជា **arrays** ពហុ វិមាត្រ។ Array មានតម្លៃពីប្រភេទដូចគ្នា ហើយវាងាយស្រួលជាង DataFrame ប៉ុន្តែផ្តល់នូវប្រតិបត្តិការគណិតវិជ្ជាជាង ហើយបង្កើតចំណាយរចនាសម្ព័ន្ធ តិចជាង។
មានបណ្ណាល័យ Python មួយចំនួនដែលមានប្រយោជន៍ខ្លាំងសម្រាប់ជួយអ្នកដោះស្រាយបញ្ហាទិន្នន័យតារាង៖
* ** [Pandas ](https://pandas.pydata.org/ )** អនុញ្ញាតឲ្យអ្នកផ្លាស់ប្តូរអ្វីដែលគេហៅថា **Dataframes** ដែលស្រដៀងទៅនឹងតារាងទំនាក់ទំនង។ អ្នកអាចមានជួរឈរដែលមានឈ្មោះ ហើយអាចប្រតិបត្ដិការផ្សេងៗលើយោងទៅលើជួរ ជួរឈរ និង Dataframes ជាទូទៅ។
* ** [Numpy ](https://numpy.org/ )** គឺ ជាបណ្ណាល័យសម្រាប់ធ្វើការជាមួយ **tensors** , មានន័យថា **arrays** ឯកភាពច្រើន វិមាត្រ។ Array មានតម្លៃពីប្រភេទដូចគ្នា ហើយវាមានភាពសាមញ្ញជាង dataframe ប៉ុន្តែវាប្រើបានច្រើនសម្រាប់ប្រតិបត្ដិការជាប្រែប្រួលគណិតវិទ្យា និងបង្កើតការរំខាន តិចជាង។
មានបណ្ណាល័យប្លែកៗមួយចំនួនដែលអ្នកគួរតែស្គាល់ផងដែរ៖
* ** [Matplotlib ](https://matplotlib.org/ )** ជាបណ្ណាល័យប្រើ សម្រាប់បង្ហាញទិន្នន័យ និងគូរសៀគ្វីក្រាប
* ** [SciPy ](https://www.scipy.org/ )** ជាបណ្ណាល័យដែលមានមុខងារវិទ្យាសាស្រ្តបន្ថែម។ យើងបានប្រើបណ្ណាល័យនេះរួចនៅពេលពិភាក្សាអំពីប្រូបាបានិងស្ថិតិ។
មានបណ្ណាល័យផ្សេងទៀតមួយចំនួនដែលអ្នកគួរតែដឹងដូចជា៖
* ** [Matplotlib ](https://matplotlib.org/ )** គឺ ជាបណ្ណាល័យសម្រាប់ការ បង្ហាញទិន្នន័យ និងគូសក្រាហ្វ
* ** [SciPy ](https://www.scipy.org/ )** គឺជាបណ្ណាល័យមួយសម្រាប់មុខងារវិទ្យាសាស្ត្របន្ថែមខ្លះ។ យើងបានស្គាល់បណ្ណាល័យនេះរួចពេលនិយាយពីប្រភាពនឹងស្ថិតិ
នេះជាកូដដែលអ្នកប្រើប្រាស់បាទធម្មតាដើម្បី នាំចូលបណ្ណាល័យទាំងនេះនៅដើមកម្មវិធី Python របស់អ្នក៖
ខាងក្រោមជាឧទាហរណ៍កូដដែលអ្នកភាគច្រើនប្រើសម្រាប់ នាំចូលបណ្ណាល័យទាំងនេះនៅដើមកម្មវិធី Python របស់អ្នក៖
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import ... # អ្នកត្រូវការបញ្ជាក់កញ្ចប់រងដែល ច្បាស់លាស់ដែលអ្នកត្រូវការ
from scipy import ... # អ្នកត្រូវការបញ្ជាក់ពី កញ្ចប់រងច្បាស់លាស់ដែលអ្នកត្រូវការ
```
Pandas គឺផ្តោតលើគំនិតបន្ទាត់មូលដ្ឋានមួយចំនួន។
### Series
Pandas ផ្អែកលើគំនិតមូលដ្ឋានជាច្រើន។
**Series** ជាជួរតម្លៃមួយ ស្រដៀងនឹងបញ្ជីឬ numpy array។ ខុសគ្នាពិសេសគឺ series មាន **index** ហើយនៅពេលយើងធ្វើប្រតិបត្តិការលើ series (ដូចជា បូករួម) អ្វីដែលកើតឡើងគឺយក index ចូលគិតផង។ Index អាចជាលេខចំនួនគត់ (ដែលគេប្រើលំនាំដើមនៅពេលបង្កើត series ពីបញ្ជី ឬ array) ឬច្រើនដូចជាគ្រាប់កាលបរិច្ឆេទ។
### Series
> ** ចំណាំ**៖ មានកូដផ្តើមនៃ Pandas នៅក្នុងសៀវភៅសរសេរពិសេស [`notebook.ipynb` ](notebook.ipynb )។ យើងបង្ហាញតែឧទាហរណ៍ខ្លះនៅទីនេះ ហើយអ្នកអាចចូលមើលសៀវភៅពេញលេញនេះបាន ។
**Series** គឺជាដំណើរការតម្លៃមួយជាសេរី វាស្រដៀងនឹងបញ្ជី ឬ numpy array។ ការប្រែមាថាខុសគ្នាលើសំខាន់គឺ series មាន **index** ផងដែរ ហើយពេលយើងបំពេញប្រតិបត្ដិការលើ series (ឧ. បូកបន្ថែម) វានឹងគិតខ្វះនៃ index ។ Index អាចជាថ្នាក់លេខខ្សែគំនរដែលសាមញ្ញ (ពេលបង្កើត series ពីបញ្ជី ឬ array វានឹងប្រើជាលំនាំប្រព័ន្ធ) ឬអាចមានរចនាសម្ព័ន្ធស្មុគស្មាញដូចជា លំនាំកាលបរិច្ឆេទ ។
យកឧទាហរណ៍៖ យើងចង់វិភាគការលក់នៅកន្លែងលក់អයිស្ក្រីមរបស់យើង។ មកបង្កើត series សម្រាប់ចំនួនលក់ (ចំនួនទំនិញលក់បានមួយថ្ងៃ) ក្នុងរយៈពេលមួយ៖
> ** កត់ចំណាំ**៖ មានកូដ Pandas មួយចំនួនសម្រាប់អ្នកចាប់ផ្តើមនៅក្នុងក្រដាសសម្ភារៈជាមួយ [`notebook.ipynb` ](notebook.ipynb )។ យើងបានគ្រាប់ពិពណ៌នាប៉ុន្មានឧទាហរណ៍នៅទីនេះ ហើយអ្នកអាចមកមើលក្រដាសពេញលេញបាន។
តើអ្នកគិតថាឧទាហរណ៍មួយ៖ យើងចង់វិភាគការលក់ទំនិញកន្លែងលក់កម្អិតទឹកកករបស់យើង។ យើងបង្កើតជួរលេខលក់ (ចំនួនទំនិញដែលបានលក់ក្នុងមួយថ្ងៃ) រយៈពេលខ្លះ៖
```python
start_date = "Jan 1, 2020"
@ -64,52 +66,46 @@ print(f"Length of index is {len(idx)}")
items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx)
items_sold.plot()
```


ឥឡូវ suppose រាល់សប្តាហ៍យើងរៀបចំវេទិការីក៏និងយកថង់អයිស្ក្រីមបន្ថែម ១០ កញ្ចប់សម្រាប់បុណ្យ។ យើងអាចបង្កើត series ផ្សេងទៀត ដែល index គឺសប្តាហ៍ ដើម្បីបង្ហាញពីវា៖
ឥឡូវយើងសន្មត់ថា រៀងរាល់សប្ដាហ៍យើងបញ្ចូលការប្រមូលផ្តុំមិត្តភក្តិ ហើយយកកញ្ចប់ទឹកកកបន្ថែម ១០ កញ្ចប់សម្រាប់ព្រឹត្តិការណ៍។ យើងអាចបង្កើត series មួយផ្សេងទៀតដែលមាន index ជាសប្ដាហ៍ ដើម្បីបង្ហាញពីរឿងនេះ៖
```python
additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W"))
```
ពេលយើងបូក series ពីរជាមួយគ្នា អ្នកទទួលបានចំនួនសរុប៖
ពេលយើងបូក series ទាំងពីរជាមួយគ្នា យើងទទួលបានចំនួនសរុប៖
```python
total_items = items_sold.add(additional_items,fill_value=0)
total_items.plot()
```


> ** ចំណាំ** ថាយើងមិនបានប្រើសរសេរសាមញ្ញ `total_items+additional_items` ទេ។ ប្រសិនបើយើងធ្វើវា វានឹងមានតម្លៃ `NaN` (*Not a Number*) ច្រើននៅក្នុង series លទ្ធផល។ នេះដោយសារតែមានតម្លៃបាត់បង់នៅ index មួយចំនួនក្នុង series `additional_items` ហើយបូក `NaN` ជាមួយអ្វីគឺទទួលបាន `NaN` ។ ដូច្នេះយើងត្រូវតែបញ្ជាក់តម្លៃ `fill_value` នៅ ពេលបូក។
> ** កត់ចំណាំ** យើងមិនបានប្រើវិធីសាSimple៍ `total_items+additional_items` ដែលសាមញ្ញទេ។ ប្រសិនបើយើងធ្វើនោះ យើងនឹងទទួលបានតម្លៃ `NaN` (គ្មានលេខ) ច្រើននៅក្នុង series ផលិតពីការបូក។ នេះកើតឡើងដោយសារតម្លៃខ្វះខាតនៅចំណុច index មួយចំនួនក្នុង series `additional_items` ហើយការ បូក `NaN` ជាមួយអ្វីៗដទៃស្ទើរតែផ្តល់ `NaN` ។ ដូច្នេះយើងត្រូវបញ្ជាក់ប៉ារ៉ាម៉ែត្រផ្ទុកតម្លៃ `fill_value` ខណៈ ពេលបូក។
ជាមួយ time series យើងអាចអនុវត្ត **resample** លើ series ជាមួយចន្លោះពេលវេលាផ្សេងៗបាន។ ឧទាហរណ៍ suppose យើងចង់គណនាមធ្យមការលក់ប្រចាំខែ។ យើងអាចប្រើកូដដូចខាងក្រោម៖
ជាមួយ series ពេលវេលា យើងអាចប្ដូរសំណុំ (resample) ជាមួយវេលាលកដូចផ្សេងៗគ្នា។ ឧទាហរណ៍ សន្មតថាយើងចង់គណនាមធ្យមចំនួនលក់រៀងខែ។ យើងអាចប្រើលក្ខណៈខាងក្រោម៖
```python
monthly = total_items.resample("1M").mean()
ax = monthly.plot(kind='bar')
```


### DataFrame
DataFrame ជាជាការប្រមួល series ដែលមាន index ដូចគ្នា។ យើងអាចបង្រួបបង្រួម series ជាច្រើនចូលទៅក្នុង DataFrame៖
DataFrame គឺជាសំណុំមួយនៃ series ដែលមាន index ដូចគ្នា។ យើងអាចរួមបញ្ចូល series ច្រើនជាមួយគ្នាទៅជាទ្រង់ទ្រាយ DataFrame៖
```python
a = pd.Series(range(1,10))
b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9))
df = pd.DataFrame([a,b])
```
វានឹងបង្កើតតារាងបញ្ឈរដូចខាងក្រោម៖
វានឹងបង្កើតតារាងផ្ដេកដូចខាងក្រោម៖
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| --- | --- | ---- | --- | --- | ------ | --- | ------ | ---- | ---- |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 1 | I | like | to | use | Python | and | Pandas | very | much |
យើងក៏អាចប្រើ Series ជាជួរឈរ និងបញ្ជាក់ឈ្មោះជួរឈរ ដោយប្រើ dictionary៖
យើងក៏អាចប្រើ Series ជាជួរឈរបាន ហើយបញ្ជាក់ឈ្មោះជួរឈរដោយប្រើវចនានុក្រម៖
```python
df = pd.DataFrame({ 'A' : a, 'B' : b })
```
វានឹងផ្តល់តារាងដូចខាងក្រោម៖
| | A | B |
@ -124,42 +120,39 @@ df = pd.DataFrame({ 'A' : a, 'B' : b })
| 7 | 8 | very |
| 8 | 9 | much |
**ចំណាំ** អ្នកក៏អាចទទួលបានចំណាត់ថ្នាក់តារាងនេះដោយប្ដូរទ្រង់ទ្រាយតារាងមុន ដូចជាសរសេរ
**កត់ចំណាំ** យើងក៏អាចទទួលបានទ្រង់ទ្រាយតារាងនេះដោយបម្លែងតារាងមុនពីជួរត្រៀមជួរឈរ ដូចជា
```python
df = pd.DataFrame([a,b]).T.. rename(columns={ 0 : 'A', 1 : 'B' })
df = pd.DataFrame([a,b]).T.rename(columns={ 0 : 'A', 1 : 'B' })
```
ដែល `.T` មានន័យថាជាប្រតិបត្តិការប្ដូរជួរដេកនិងជួរឈរ DataFrame ហើយ `rename` អនុញ្ញាតឱ្យអ្នកប្ដូរឈ្មោះជួរឈរឱ្យសមល្អដូចឧទាហរណ៍មុន។
នៅទីនេះ `.T` មានន័យថា ប្រតិបត្ដិការបម្លែងតារាង DataFrame ដោយប្តូរជួរនិងជួរឈរ ហើយ `rename` អនុញ្ញាតឲ្យយើងប្តូរឈ្មោះជួរឈរតាមឧទាហរណ៍មុន។
ខាងក្រោមជាប្រតិបត្តិការសំខាន់ៗដែលយើងអាចធ្វើបាន លើ DataFrames៖
ខាងក្រោមជាប្រតិបត្ដិការសំខាន់ៗមួយចំនួនដែលយើងអាចចាត់ទុកទៅ លើ DataFrames៖
**ជ្រើសជួរឈរ**។ យើងអាចជ្រើសជួរឈរដោយសរសេរ `df['A']` - ប្រតិបត្តិការនេះត្រឡប់ជាមួយ Series។ យើងក៏អាចជ្រើសជួរឈរផ្នែកខ្លះ ចេញជាទំនាក់ទំនងថ្មី ដោយសរសេរ `df[['B','A']]` - វាត្រឡប់ជាមួយ DataFrame ផ្សេងទៀត ។
**ជ្រើសរើស ជួរឈរ**។ យើងអាចជ្រើសជួរឈរផ្ទាល់ដោយសរសេរ `df['A']` - ប្រតិបត្ដិការនេះត្រូវបានត្រឡប់តម្លៃជា Series។ យើងក៏អាចជ្រើសជួរឈរមួយចំនួនទៅ DataFrame ផ្សេងទៀតដោយសរសេរ `df[['B','A']]` - វាបម្លែងទៅជា DataFrame មួយផងដែរ ។
**តម្រង** ជួរដេកជាក់លាក់ដ ោយលក្ខខណ្ឌ។ ឧទាហរណ៍ ដើម្បីទុកតែជួរដេកដែលជួរឈរ `A` មានតម្លៃធំជាង 5 យើងអាចសរសេរ `df[df['A']>5]` ។
**តម្រង** ជួរដោយលក្ខខណ្ឌ។ ឧទាហរណ៍ ដើម្បីច្រានចោលជួរដែលមានតម្លៃជួរឈរ `A` តិចជាង ឬស្មើ ៥ យើងអាចសរសេរ `df[df['A']>5]` ។
> ** ចំណាំ** របៀបធ្វើការតម្រងគឺ៖ ការប៉ាឡេស្យុង `df['A']<5` ត្រឡប់ជាមួយ series ប៊ូលខាងមុខ បង្ហាញថាតើលក្ខខណ្ឌគឺពិត ឬមិនពិតសម្រាប់ធាតុទោលនីមួយៗក្នុង series ដើម `df['A']` ។ នៅពេលដែល series ប៊ូលត្រូវបានប្រើជាអាំងឌិច វាត្រឡប់ជាមួយមាត្រដ្ឋានជួរដេកក្នុង DataFrame។ ដូច្នេះមិនអាចប្រើបញ្ញាពិត/មិនពិត Python ដូចជាសរសេរ `df[df['A']>5 and df['A']<7]` បានទេ។ ត្រូវប្រើប្រតិបត្តិការ `&` លើ boolean series ដូចជា `df[(df['A']>5) & (df['A']<7)]` (*សញ្ញាព័ណនេះចាំបាច់*។)
> ** កត់ចំណាំ**៖ របៀបស្វែងរកត្រូវបានបំបែកដូចខាងក្រោម។ បារាង `df['A']<5` នឹងត្រឡប់របារ boolean ដែលបង្ហាញថា តម្លៃមួយៗក្នុង `df['A']` មានតម្លៃ True ឬ False ។ ពេលដែលប្រើ boolean series ជា index វានឹងត្រឡប់ជាចំនាត់ថ្នាក់ទ្រង់ទ្រាយ DataFrame។ ដូច្នេះមិនអាចប្រើបារម្ភ boolean code ក្នុង Python នៅផ្នែកនេះរួចបានទេ ហើយខុសឆ្គងក្នុងការចុះបញ្ជីដូចជា `df[df['A']>5 and df['A']<7]` ។ ថែមទាំងត្រូវប្រើការប្រតិបត្ដិការពិសេស `&` លើ boolean series ជាមួយសញ្ញាស្វ័យបិទសញ្ញា `(` `)` ដូចជា `df[(df['A']>5) & (df['A']<7)]` (សញ្ញាស្វ័យបិទសារៈសំខាន់)។
**បង្កើតជួរឈរថ្មីដែលគណនាបាន **។ យើងអាចបង្កើតជួរឈរក្នុង DataFrame ជាមួយសមីការផ្សេងៗដោយសាមញ្ញ៖
**បង្កើតជួរឈរប្រតិបត្ដិការ ថ្មី**។ យើងអាចបង្កើតជួរឈរថ្មីដែលគណនាចេញបានសម្រាប់ DataFrame ដោយប្រើបរិយាយសំណួរដូចខាងក្រោម៖
```python
df['DivA'] = df['A']-df['A'].mean()
```
ឧទាហរណ៍នេះគណនាការប្រែប្រួលរបស់ A ពីតម្លៃមធ្យមរបស់វា។ អ្វីដែលកើតឡើងនៅទីនេះគឺ យើងកំពុងគណនា series មួយ ហើយបន្ទាប់មកចាត់តម្លៃទៅឈាត្បិចឆ្វេង បង្កើតជួរឈរថ្មី។ ដូច្នេះយើងមិនអាចប្រើប្រតិបត្តិការអ្វីដែលមិនសមត្ថភាពជាមួយ series បានទេ។ ឧទាហរណ៍កូដខាងក្រោមខុស៖
ឧទាហរណ៍នេះគណនាភាពខុសគ្នារវាង A និងតម្លៃមធ្យមរបស់វា។ អ្វីដែលកើតឡើងពិតជាគឺយើងកំពុងគណនាដំណើរមួយ ហើយដាក់ series នេះទៅខាងឆ្វេង បង្កើតជួរឈរថ្មី។ ដូច្នេះ អ្នកមិនអាចប្រើប្រតិបត្ដិការណាដែលមិនប្រព័ន្ធពី series នៅទីនេះបានទេ។ ឧទាហរណ៍កូដខាងក្រោម គឺខុស៖
```python
# កូដខុស -> df['ADescr'] = "Low" ប្រសិនបើ df['A'] < 5 ត ្ រ ង ់ ន េ ះ " Hi "
# កូដខុស -> df['ADescr'] = "ទាប" ប្រសិនបើ df['A'] < 5 ផ ្ ទ ុ យ ទ ៅ " ខ ្ ព ស ់ "
df['LenB'] = len(df['B']) # < - ល ទ ្ ធ ផ ល ខ ុ ស
```
ឧទាហរណ៍ចុងក្រោយទោះជាដោយលក្ខណៈវេយ្យាករណ៍គឺត្រឹមត្រូវ ប៉ុន្តែម្តងម៉ោងវាផ្ដល់លទ្ធផលខុសដោយសារតែវាវាយតម្លៃប្រវែងរបស់ series `B` ទៅកាន់តម្លៃទាំងអស់ នៅក្នុងជួរឈរនៃ DataFrame មិនមែនប្រវែងរបស់ធាតុមួយៗដូចដែលចង់បាន។
ឧទាហរណ៍នេះ ខណៈដែលសម្គាល់ត្រឹមត្រូវតាមវេយ្យាករណ៍ តែផ្តល់លទ្ធផលខុសក្នុងន័យថា វាបែងចែកប្រវែង series `B` ទៅតម្លៃទាំងអស់ក្នុងជួរឈរ មិនមែនប្រវែងនៃធាតុមួយៗដូចដែលយើងចង់បាន។
ប្រសិនបើយើងត្រូវបង្ហាញអនុគមន៍ស្មុគស្មាញដូចនេះ អាចប្រើមុខងារ `apply` ។ ឧទាហរណ៍ចុងក្រោយអាចសរសេរ ដូចខាងក្រោម៖
ប្រសិនបើយើងត្រូវមានការគណនា expression ស្មុគស្មាញ ដូចនេះ អ្នក អាចប្រើមុខងារ `apply` ។ ឧទាហរណ៍ចុងក្រោយអាចសរសេរដូចខាងក្រោម៖
```python
df['LenB'] = df['B'].apply(lambda x : len(x))
# ឬ
df['LenB'] = df['B'].apply(len)
```
បន្ទាប់ពីអនុវត្តខាងលើ យើង បាន DataFrame ដូចខាងក្រោម៖
បន្ទាប់ពីដំណើរការខាងលើ យើងនឹងទទួល បាន DataFrame ដូចខាងក្រោម៖
| | A | B | DivA | LenB |
| --- | --- | ------ | ---- | ---- |
@ -173,23 +166,21 @@ df['LenB'] = df['B'].apply(len)
| 7 | 8 | very | 3.0 | 4 |
| 8 | 9 | much | 4.0 | 4 |
**ជ្រើសជួរដេកដ ោយផ្អែកលើ លេខ** អាចធ្វើបានដោយប្រើ `iloc` ។ ឧទាហរណ៍ ជ្រើសជួរដេកចំនួន 5 ដំបូងពី DataFrame៖
**ជ្រើសរើស ជួរដោយលេខសៀង ** អាចធ្វើបានដោយប្រើ `iloc` ។ ឧទាហរណ៍ ដើម្បីជ្រើសរើស ៥ ជួរដំបូងពី DataFrame៖
```python
df.iloc[:5]
```
**ការបើកក្រុម** គឺជារឿងជាញឹកញាប់សម្រាប់ទទួលបានលទ្ធផលស្រដៀងនឹង *pivot tables* នៅក្នុង Excel។ suppose យើងចង់គណនាតម្លៃមធ្យមនៃជួរឈរ `A` សម្រាប់ជួរឈរ `LenB` មួយៗ។ ហើយយើងអាចបង្រួ ម DataFrame ដោយ `LenB` ហើយហៅ `mean` ៖
**ក្រុម** ត្រូវបានប្រើជាញឹកញាប់សម្រាប់ទទួលលទ្ធផលដូចជា *pivot tables* នៅក្នុង Excel។ សន្មតថា យើងចង់គណនាតម្លៃមធ្យមនៃជួរឈរ `A` សម្រាប់ភាគចំនួន `LenB` ទាំងឡាយ។ បន្ទាប់ពីនោះយើងអាចក្រុ ម DataFrame ដោយ `LenB` ហើយហៅ `mean` ៖
```python
df.groupby(by='LenB')[['A','DivA']].mean()
```
ប្រសិនបើត្រូវការគណនាមធ្យម និងចំនួនធាតុនៅក្នុងក្រុម អ្នកអាចប្រើមុខងារ `aggregate` ស្មុគស្មាញ៖
ប្រសិនបើយើងចង់គណនាតម្លៃមធ្យម និងចំនួនធាតុមួយក្នុងក្រុម យើងអាចប្រើមុខងារ `aggregate` ដែលស្មុគស្មាញជាងនេះ៖
```python
df.groupby(by='LenB') \
.aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \
.rename(columns={ 'DivA' : 'Count', 'A' : 'Mean'})
```
វាបង្ហាញតារាងដូចខាងក្រោម៖
| LenB | Count | Mean |
@ -200,95 +191,98 @@ df.groupby(by='LenB') \
| 4 | 3 | 6.333333 |
| 6 | 2 | 6.000000 |
### ការទទួលទិន្នន័យ
យើងបានឃើញថាវាងាយស្រួលយ៉ាងដូចម្តេចក្នុងការបង្កើត Series និង DataFrames ពីវត្ថុ Python។ ប៉ុន្តែទិន្នន័យភាគច្រើនមានឡើងក្នុងរូបមន្តនៃឯកសារច្បាប់ ឬតារាង Excel។ โชคดีที่ Pandas ផ្ដល់ជម្រើសមួយសាមញ្ញក្នុងការលោតទិន្នន័យពីឌីស។ ឧទាហរណ៍ ការអានឯកសារ CSV គឺសាមញ្ញដូចខាងក្រោមនេះ៖
### ការទទួលបានទិន្នន័យ
យើងបានឃើញថាវាយ៉ាងងាយស្រួលក្នុងការបង្កើត Series និង DataFrames ពីវត្ថុ Python។ ប៉ុន្តែ ទិន្នន័យជាធម្មតាមកក្នុងទម្រង់ឯកសារអត្ថបទ ឬតារាង Excel។ ទំណុកបញ្ចោញ Pandas ផ្តល់ឱ្យយើងវិធីសាមញ្ញក្នុងការផ្ទុកទិន្នន័យពីឌីស។ ឧទាហរណ៍ ការអានឯកសារ CSV គឺងាយស្រួលដូចនេះ:
```python
df = pd.read_csv('file.csv')
```
យើងនឹងឃើញឧទាហរណ៍បន្ថែមទៀតនៃការលោតទិន្នន័យ រួមទាំងការទាញយកវាពីតំបន់បណ្តាញខាងក្រៅ ក្នុងផ្នែក "ប្រលង"
យើងនឹងឃើញឧទាហរណ៍បន្ថែមទៀតនៃការផ្ទុកទិន្នន័យ រួមមានការទាញយកពីគេហទំព័រចេញក្រៅ ក្នុងផ្នែក "Challenge"
### ការបោះពុម្ភ និងគំនូស
### ការបោះពុម្ពនិងបង្ហាញក្រាប
អ្នកវិទ្យាសាស្ត្រទិន្នន័យភាគច្រើនត្រូវ ស្វែងរកទិន្នន័យ ដូច្ នេះវាជារឿងសំខាន់ក្នុងការអាចមើលឃើញវា។ នៅពេល DataFrame មានទំហំធំ មួយចំនួនយើងត្រូវការតែប្រាកដថាយើងកំពុងធ្វើអ្វីបានត្រឹមត្រូវដោយបោះពុម្ភជួរដើមៗមួយចំនួន។ វាអាចធ្វើបានដោយការហៅ `df.head()` ។ ប្រសិនបើអ្នកបង្ហាញវាពី Jupyter Notebook វានឹងបោះពុម្ភ DataFrame ជាទម្រង់តារាងដ៏ ស្អាតមួយ។
អ្នកវិទ្យាសាស្ត្រទិន្នន័យជាញឹកញាប់ត្រូវតែ ស្វែងរកទិន្នន័យ ដូចនេះវាជារឿងសំខាន់ក្នុងការមានសមត្ថភាពមើលឃើញវា។ នៅពេល DataFrame មានទំហំធំ ជាច្រើនដង យើងចង់ធ្វើអោយប្រាកដថាយើងកំពុងធ្វើអ្វីៗបានត្រឹមត្រូវ ដោយបោះពុម្ពបញ្ជូលជួរដំបូងៗមួយប៉ុណ្ណោះ។ វាអាចធ្វើបានដោយហៅ `df.head()` ។ ប្រសិនបើអ្នកកំពុងដំណើរការ វាពី Jupyter Notebook វានឹងបោះពុម្ព DataFrame ជាទម្រង់តារាងស្អាតមួយ។
យើងបានឃើញការប្រើប្រាស់ `plot` ដើម្បីចាក់បង្ហាញជួរឈរមួយចំនួន។ ខណៈដែ ល `plot` មានប្រយោជន៍សម្រាប់ការងារជាច្រើន ហើយគាំទ្រប្រភេទគំនូសជាច្រើនតាមព្រមានុភាព `kind=` អ្នកអាចតែងតែប្រើបណ្ណាល័យ `matplotlib` ដើមដើម្បីគូរអ្វីដែលស្មុគស្មាញជាងនេះ។ យើងនឹងពិពណ៌នាអំពីការមើលទិន្នន័យយ៉ាងលម្អិតក្នុងមេរៀនវគ្គផ្សេងៗ ។
យើងក៏បានឃើញករណីប្រើមុខងារ `plot` ដើម្បីបង្ហាញស្តង់ក្នុងជួរដេកមួយចំនួន។ ខណៈពេ ល `plot` មានប្រយោជន៍សម្រាប់ការងារជាច្រើន និងគាំទ្រប្រភេទក្រាបខុសៗគ្នាតាមរយៈប៉ារ៉ាម៉ែត្រ `kind=` អ្នកអាចប្រើបណ្ណាល័យ `matplotlib` ដំបូង ដើម្បីបង្ហាញអ្វីដែលស្មុគស្មាញជាងនេះ។ យើងនឹងពិភាក្សាពីការបង្ហាញទិន្នន័យជាលម្អិតក្នុងមេរៀនវគ្គបំបែកផ្សេងទៀត ។
ការពិចារណាទាំងនេះគ្របដណ្តប់គំនិតសំខាន់ៗភាគច្រើនរបស់ Pandas ប៉ុន្តែបណ្ណាល័យនេះមានភាពសម្បូរបែបខ្លាំង ហើយគ្មានដែនកំណត់អ្វីដែលអ្នកអាចធ្វើជាមួយវាទេ! ឥឡូវពួកយើងនឹងអនុវត្តចំណេះដឹងនេះដើម្បីដោះស្រាយបញ្ហាក់្បាស់លាស់ មួយ។
ទិដ្ឋភាពទូទៅនេះគ្របដណ្តប់ចំនុចសំខាន់ៗបំផុតរបស់ Pandas ប៉ុន្តែបណ្ណាល័យនេះមានមាតិកាច្រើន ហើយគ្មានកំណត់ក្នុងអ្វីដែលអ្នកអាចធ្វើជាមួយវាទេ! យើងចាប់ផ្តើមប្រើចំណេះដឹងនេះដើម្បីដោះស្រាយបញ្ហាពិសេស មួយ។
## 🚀 ប្រលង ១៖ ការវិភាគការរីករាលដាល COVID
## 🚀 បញ្ហានឹងត្រូវដោះស្រាយ ១៖ វិភាគការចម្រើន COVID
បញ្ហាប្រកាសដែលយើងនឹងផ្តោតទៅលើគឺការមោងម៉ូដែលការរីករាលដាលរោគ រាតត្បាត COVID-19។ ដើម្បីធ្វើការនេះ យើងនឹងប្រើទិន្នន័យអំពីចំនួនមនុស្សដែលឆ្លងជួរនីមួយៗនៅប្រទេសផ្សេងៗ ដែលបានផ្តល់ដោយ [មជ្ឈមណ្ឌលសង្គមវិជ្ជាសាស្ត្រនិងវិស្វកម្ម ](https://systems.jhu.edu/ ) (CSSE) នៅ [សាកលវិទ្យាល័យ Johns Hopkins ](https://jhu.edu/ )។ សំណុំទិន្នន័យនេះ អាចរកបាននៅក្នុង [សារពើភ័ណ្ឌ GitHub នេះ](https://github.com/CSSEGISandData/COVID-19 )។
បញ្ហាលើកដំបូងដែលយើងនឹងផ្តោតគឺការគំរូនៃការផ្ទុះជំងឺ រាតត្បាត COVID-19។ ដើម្បីធ្វើការនេះ យើងនឹងប្រើទិន្នន័យអំពីចំនួនអ្នកឆ្លងជំងឺនៅប្រទេសនានា ដែលបានផ្តល់ដោយ [Center for Systems Science and Engineering ](https://systems.jhu.edu/ ) (CSSE) នៅ [សាកលវិទ្យាល័យ Johns Hopkins ](https://jhu.edu/ )។ សំណុំទិន្នន័យអាចរកបាននៅ [ GitHub Repository នេះ](https://github.com/CSSEGISandData/COVID-19 )។
ដោយសារយើងចង់បង្ហាញពីរបៀបដោះស្រាយទិន្នន័យ អ្នកត្រូវបើកបោះពុម្ភ [`notebook-covidspread.ipynb` ](notebook-covidspread.ipynb ) ហើយអានវា ពីលើផ្ទាំងខាង លើទៅក្រោម។ អ្នកអាចប្រតិបត្តិការ cells ផងនិងធ្វើប្រលងខ្លះដែលយើងបានទុកសម្រាប់អ្នកនៅចុងក្រោយ ។
ព្រោះយើងចង់បង្ហាញពីវិធីដោះស្រាយទិន្នន័យ យើងអញ្ជើញអ្នកបើក [`notebook-covidspread.ipynb` ](notebook-covidspread.ipynb ) ហើយអានពីលើទៅក្រោម។ អ្នកអាចបញ្ចូលកូដក្នុងខ្ទង់កូដ ក៏ដូចជាត្រូវបានជួបប្រទះបញ្ហាដែលយើងបានទុកសម្រាប់អ្នកនៅចុងផងដែរ ។

> ប្រសិនបើអ្នកមិនដឹងយ៉ាងដូចម្តេចក្នុងការរត់កូដនៅ ក្នុង Jupyter Notebook សូមមើល [អត្ថបទនេះ ](https://soshnikov.com/education/how-to-execute-notebooks-from-github/ )។
> ប្រសិនបើអ្នកមិនដឹងរបៀបដំណើរការកូដ ក្នុង Jupyter Notebook សូមមើល [អត្ថបទនេះ ](https://soshnikov.com/education/how-to-execute-notebooks-from-github/ )។
## ការធ្វើការជាមួយទិន្នន័យមិនមានរចនាសម្ព័ន្ធ
## ការងារជាមួយទិន្នន័យមិនរៀបរយ
ខណៈដែលទិន្នន័យភាគច្រើនមានរូបមន្តក្នុងទម្រង់តារាង ករណីខ្លះយើងត្រូវប្រយ័ត្នជាមួយទិន្នន័យដែលមានរចនាសម្ព័ន្ធតិចជាង ដូចជាអត្ថបទ ឬរូបភាព។ ក្នុងករណីនេះ ដើម្បីអនុវត្តវិធីសាស្ត្របំពានទិន្នន័យដែលយើងបានឃើញខាងលើ អ្នកត្រូវការដកស្រង់ទិន្នន័យដែលមានរចនាសម្ព័ន្ធមួយយ៉ាងណាម្តង។ នេះគឺជាឧទាហរណ៍មួយចំនួន ៖
រួមចំណែកទិន្នន័យជាញឹកញាប់មានទម្រង់តារាង ប៉ុន្តែក្នុងករណីខ្លះ យើងត្រូវការដោះស្រាយទិន្នន័យដែលមិនរៀបចំរួច ព្រមទាំងអត្ថបទ ឬរូបភាព។ ក្នុងករណីនេះ ដើម្បីអនុវត្តបច្ចេកទេសដំណើរការទិន្នន័យដែលបានមើលឃើញខាងលើ យើងត្រូវអាច ** ដក** ទិន្នន័យរៀបចំបានមួយវិញ។ អ្វីខ្លះមានឧទាហរណ៍ ៖
* ដកពាក្យគន្លឹះពីអត្ថបទ ហើយមើលថាពាក្យគន្លឹះអាក្រក់កើតឡើង ប៉ុន្មានដង
* ប្រើបណ្តាញប្រសាទដើម្បីលើកឡើងព័ត៌មានអំពីវត្ថុក្នុង រូបភាព
* ទទួលព័ត៌មានអារម្មណ៍របស់មនុស្សក្នុងវីដេអូជាបញ្ចូលពីកាមេរ៉ា
* ដកពាក្យគន្លឹះពីអត្ថបទ ហើយមើលថាពាក្យគន្លឹះទាំងនោះបង្ហាញ頻率 ប៉ុន្មានដង
* ប្រើបណ្ណាល័យបណ្តាញប្រសាទ (neural networks) ដើម្បីដកព័ត៌មានរបស់វត្ថុនៅលើ រូបភាព
* ទទួលបានព័ត៌មានអំពីអារម្មណ៍មនុស្សនៅលើវីដេអូផ្តល់ការតាមដាន
## 🚀 ប្រលង ២៖ ការ វិភាគអត្ថបទ COVID
## 🚀 បញ្ហានឹងត្រូវដោះស្រាយ ២៖ វិភាគអត្ថបទ COVID
នៅក្នុងប្រលងនេះ យើងនឹងបន្តជាមួយប្រធានបទជំងឺរាតត្បាត COVID ហើយផ្តោតលើការបំពានក្រដាសវិទ្យាសាស្ត្រលើប្រធានបទនេះ។ មានសំណុំទិន្នន័យ [CORD-19 Dataset ](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge ) ដែលមានអត្ថបទលើសពី ៧០០០ (នៅពេលសរសេរ) អំពី COVID ដោយផ្ដល់ជាមួយព័ត៌មានមេតា និងសង្ខេប (និងសម្រាប់ប្រហែលពាក់កណ្តាលក្នុងចំណោមគេស្ថិតនៅមានអត្ថបទពេញ )។
ក្នុងបញ្ហានេះ យើងនឹងបន្តជាមួយប្រធានបទមហាភាព COVID និងផ្តោតលើដំណើរការអត្ថបទវិទ្យាសាស្ត្រអំពីប្រធានបទនេះ។ មាន [សំណុំទិន្នន័យ CORD-19 ](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge ) ដែលមានអត្ថបទលើសពី 7000 (នៅពេលសរសេរ) អំពី COVID ព្រមទាំងមានមេតាទិន្នន័យ និងសេចក្ដីសង្ខេប (សម្រាប់ប្រមាណកន្លែងពាក់កណ្តាលមានអត្ថបទពេញលេញផ្តល់ទៀត )។
ឧទាហរណ៍ពេញលេញនៃការវិភាគសំណុំនេះដោយប្រើសេវាកម្មការយល់ដឹង [Text Analytics for Health ](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum ) ត្រូវបានពិពណ៌នាជារបាយការណ៍ [នៅក្នុងប្លុក នេះ](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/ )។ យើងនឹងពិភាក្សារបស់កំណែកំណត់ត្រឹមត្រូវ នៃការវិភាគនេះ។
ឧទាហរណ៍ពេញលេញនៃការវិភាគសំណុំទិន្នន័យ នេះដោយប្រើសេវាកម្មនៃ [Text Analytics for Health ](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum ) ត្រូវបានពណ៌នានៅ [ប្រកាសប្លក់ នេះ](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/ ). យើងនឹងពិភាក្សាអំពីកំណត់រូបភាពដែលបានបង្រួម នៃការវិភាគនេះ។
> ** ចំណាំ**៖ យើងមិនផ្ដល់ចម្លងសំណុំទិន្នន័យជាផ្នែកនៃសារពើភ័ណ្ឌ នេះទេ។ អ្នកប្រហែលជាត្រូវទាញយកឯកសារ [`metadata.csv` ](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv ) មុន ពី [សំណុំទិន្នន័យ នេះនៅ Kaggle ](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge )។ អ្នកប្រហែលជាត្រូវចុះឈ្មោះជាមួយ Kaggle ដើម្បីចូលប្រើ ។ អ្នកអាចទាញយកសំណុំទិន្នន័យដោយមិនចាំបាច់ចុះឈ្មោះ [នៅ ទីនេះ](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html ) បែបនេះបានទេ ប ៉ុន្តែវានឹងរួមបញ្ចូលអត្ថបទពេញទាំងអស់ក្រៅពីឯកសារ metadata ។
> ** ចំណាំ**៖ យើងមិនផ្តល់ចម្លងសំណុំទិន្នន័យជាផ្នែកមួយនៃទីតាំងកំណត់ នេះទេ។ អ្នកប្រហែលជាត្រូវទាញយកឯកសារ [`metadata.csv` ](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv ) ពី [សំណុំទិន្នន័យ លើ Kaggle នេះ ](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge ) ជាមុន ។ អ្នកប្រហែលជាត្រូវចុះឈ្មោះជាមួយ Kaggle។ អ្នកអាចទាញយកសំណុំទិន្នន័យដោយគ្មានចុះឈ្មោះ [ពី ទីនេះ](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html ) ប៉ុន្តែវានឹងរួមបញ្ចូលអត្ថបទពេញលេញទាំងអស់បូកជាមួយឯកសារមេតា ។
បើក [`notebook-papers.ipynb` ](notebook-papers.ipynb ) ហើយអានវា ពីលើទៅក្រោម។ អ្នកអាចប្រតិបត្តិការចន្លោះទាំងមូល និងធ្វើប្រលងខ្លះដែលយើងបានទុកឲ្យអ្នកនៅចុងក្រោយ ផងដែរ។
បើក [`notebook-papers.ipynb` ](notebook-papers.ipynb ) ហើយអានពីលើទៅក្រោម។ អ្នកអាចបញ្ចូលកូដក្នុងខ្ទង់កូដ និងធ្វើបញ្ហាដែលយើងបានទុកសម្រាប់អ្នកនៅចុង ផងដែរ។

## ការ ដំណើរការទិន្នន័យរូបភាព
## ដំណើរការទិន្នន័យរូបភាព
នៅពេលថ្មីៗនេះ ម៉ូដែល AI មានអំណាចខ្លាំងត្រូវបានអភិវឌ្ឍដែលអនុញ្ញាតិឲ្យយើងយល់ពីរូបភាព។ មានកិច្ចការជា ច្រើនដែលអាចដោះស្រាយបានដោយប្រើបណ្តាញប្រសាទដែលបានបណ្ដុះបណ្ដាលរួចហើយ ឬសេវាគ្លាពហោស័ណ្ឌ។ ឧទាហរណ៍តូចៗរួម មាន៖
ខណៈពេលថ្មីៗនេះ មានគំរូ AI ដែលមានអំណាចខ្លាំងត្រូវបានអភិវឌ្ឍ ដែលអាចឲ្យយើងយល់ពីរូបភាព។ មានការងារ ច្រើនដែលអាចដោះស្រាយបានដោយប្រើបណ្តាញប្រសាទដែលបានបណ្តុះជាមុន ឬសេវាកម្មពពក។ ឧទាហរណ៍ មាន៖
* ** ចំណាត់ថ្នាក់រូបភាព** ដែលជួយអោ យអ្នកចាត់ថ្នាក់រូបភាពទៅក្នុងថ្នាក់ដែលបានកំណត់រួចមួយ។ អ្នកអាចបណ្ដុះបណ្ដាលម៉ូដែលចំណាត់ថ្នាក់រូបភាពជារបស់ខ្លួ នយ៉ាងងាយស្រួលដោយប្រើសេវាកម្មដូចជា [Custom Vision ](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum )
* ** ការរកឃើញវត្ថុ** ដើម្បីរក វត្ថុផ្សេងៗនៅក្នុងរូបភាព។ សេវាកម្មដូចជា [computer vision ](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum ) អាចរកឃើញវត្ថុទូទៅជាច្រើន ហើយអ្នកអាចបណ្ដុះបណ្ដាល ម៉ូដែល [Custom Vision ](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum ) ដើម្បីរកវត្ថុជាក់លាក់មួយចំនួនដែលចាប់អារម្មណ៍។
* ** ការរកមុខ** រួមទាំង ការរក អាយុ ភេទ និងអារម្មណ៍។ វាអាចធ្វើបានតាមរយៈ [Face API ](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum )។
* ** ចំណាត់ថ្នាក់រូបភាព** ដែលអាច ជួយអ្នកចាត់ថ្នាក់រូបភាពទៅក្នុងថ្នាក់ជាក់លាក់មួយ។ អ្នកអាចបណ្តុះនូវម៉ូដែលចំណាត់ថ្នាក់រូបភាពផ្ទាល់ខ្លួនបា នយ៉ាងងាយស្រួលដោយប្រើសេវាកម្មដូចជា [Custom Vision ](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum )
* ** រកសម្គាល់វត្ថុ** ដើម្បីរកអត្តសញ្ញាណ វត្ថុផ្សេងៗនៅក្នុងរូបភាព។ សេវាកម្មដូចជា [computer vision ](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum ) អាចរកប្រភេទវត្ថុទូទៅបានច្រើន ហើយអ្នកអាចបណ្តុះ ម៉ូដែល [Custom Vision ](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum ) ដើម្បីរកវត្ថុជាក់លាក់មួយចំនួនដែលមាន ចំណ ាប់អារម្មណ៍។
* ** រកសម្គាល់ផ្ទៃមុខ** រួមមានការកំណត់ អាយុ ភេទ និងអារម្មណ៍។ វាអាចធ្វើបានតាមរយៈ [Face API ](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum )។
សេវាកម្មគ្លាពทั้งหมดទាំងអស់ជាច្រើននេះអាចហៅប្រើបានដោយប្រើ [Python SDKs ](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum ) ហើយដូចនេះអាចបញ្ចូលបានយ៉ាងងាយស្រួលក្នុងដំណើរការ ស្វែងរកទិន្នន័យរបស់អ្នក។
សេវាកម្មពពកទាំងអស់នេះអាចហៅបានតាមរយៈ [Python SDKs ](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum ) ហើយដូច្នេះអាចបញ្ចូលយ៉ាងងាយស្រួលទៅក្នុងបណ្តារដ្ឋាន ស្វែងរកទិន្នន័យរបស់អ្នក។
នេះជាឧទាហរណ៍ខ្លះៗ នៃការស្វែងរកទិន្នន័យពីប្រភពទិន្នន័យរូបភាព៖
* នៅក្នុងប្លុ ក [How to Learn Data Science without Coding ](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/ ) យើងស្វែងរករូបថត Instagram ព្យាយាមយល់ថាអ្វីធ្វើឲ្យមនុស្សចូលចិត្តរូបថតមួយច្រើនជាង។ យើងដកយកព័ត៌មានប ានច្រើនបំផុតពីរូបភាពដោយប្រើប្រាស់ [computer vision ](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum ) ហើយបន្ទាប់មកប្រើ [Azure Machine Learning AutoML ](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum ) ដើម្បីបង្កើតម៉ូដែល ដែលអាចពន្យល់បាន។
* នៅក្នុង [Facial Studies Workshop ](https://github.com/CloudAdvocacy/FaceStudies ) យើងប្រើ [Face API ](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum ) ដើម្បីស្វែងយល់អារម្មណ៍លើមនុស្សក្នុង រូបថតពីព្រឹត្តិការណ៍ ដើម្បីព្យាយាមយល់ថាអ្វីធ្វើឲ្យមនុស្សសប្បាយចិត្ត ។
នៅទីនេះមានឧទាហរណ៍មួយចំនួន នៃការស្វែងរកទិន្នន័យពីប្រភពទិន្នន័យរូបភាព:
* នៅក្នុងប្លក់ [How to Learn Data Science without Coding ](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/ ) យើងស្វែងយល់ពីរូបថត Instagram ដើម្បីព្យាយាមយល់ថាអ្វីជាឧបករណ៍ជួយអោយមនុស្សចុចចូលច្រើនជាង ពីរូបថតមួយ។ យើងដកព័ត៌ម ានច្រើនបំផុតពីរូបភាពដោយប្រើ [computer vision ](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum ) ហើយបន្ទាប់មកប្រើ [Azure Machine Learning AutoML ](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum ) ដើម្បីបង្កើតម៉ូដែលអាចពន្យល់បាន។
* នៅក្នុង [Facial Studies Workshop ](https://github.com/CloudAdvocacy/FaceStudies ) យើងប្រើ [Face API ](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum ) ដកអារម្មណ៍មនុស្សនៅលើ រូបថតពីព្រឹត្តិការណ៍ ដើម្បីព្យាយាមយល់ថាអ្វីធ្វើអោយមនុស្សមានសុភមង្គល ។
## សេចក្ដីសន្និដ្ឋាន
មិនថា អ្នកមានទិន្នន័យដែលមានរចនាសម្ព័ន្ធ ឬមិនមានរចនាសម្ព័ន្ធ មុននឹងប្រើ Python អ្នកអាចអនុវត្តជំហានទាំងអស់ដែលពាក់ព័ន្ធនឹងការបំពានទិន្នន័យ និងការយល់ដឹងលើវា។ វាជារបៀបដែលរាបស្រាយបំផុតក្នុងការបំពានទិន្នន័យ ហើយនេះគឺជាហេតុផលដែលភាគច្រើនអ្នកវិទ្យាសាស្ត្រ ទិន្នន័យប្រើប្រាស់ Python ជាឧបករណ៍ដើមរបស់ពួកគេ។ ការរៀន Python ជ្រៅជាងគឺជាគំនិតល្អ ប្រសិនបើអ្នកចង់ធ្វើជាអ្នកវិទ្យាសាស្ត្រ ទិន្នន័យយ៉ាងស្មោះត្រង់ !
មិនថាអ្នកមានទិន្នន័យរៀបចំ ឬមិនរៀបចំហើយ ការប្រើប្រាស់ Python អ្នកអាចអនុវត្តជំហានទាំងអស់ដែលពាក់ព័ន្ធនឹងដំណើរការ និងការយល់ដឹងលើទិន្នន័យ។ វាបាច់បាតជារបៀបដែលបត់បែនបំផុតសម្រាប់ដំណើរការទិន្នន័យ ហើយនេះជាហេតុផលដែលអ្នកវិទ្យាសាស្ត្រទិន្នន័យភាគច្រើនប្រើ Python ជាឧបករណ៍ដ៏សំខាន់របស់ពួកគេ។ ការសិក្សា Python ជ្រៀងជ្រែករីករាយគឺជាគំនិតល្អ ប្រសិនបើអ្នកមានចំណាប់អារម្មណ៍យ៉ាងខ្លាំងលើដំណើរទស្សនៈទិន្នន័យរបស់អ្នក !
## [សំនួរសរសេរបង្ហាញក្រោយ មេរៀន](https://ff-quizzes.netlify.app/en/ds/quiz/13 )
## [វាយតម្លៃបន្ទាប់មក មេរៀន](https://ff-quizzes.netlify.app/en/ds/quiz/13 )
## ការពិនិត្យឡើងវិញ និងការសិក្សាផ្ទាល់ខ្លួន
## ការត្រួតពិនិត្យ និងសិក្សាឯករាជ្យ
**សៀវភៅ**
* [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython ](https://www.amazon.com/gp/product/1491957662 )
**ធនធានអនឡាញ**
* មេរៀនផ្លូវការជាចំនួន [១០ នាទីទៅ Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html )
* [ឯកសារអំពីការមើលទិន្នន័យ Pandas Visualization ](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html )
* មេរៀនផ្លូវការ [10 minutes to Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html )
* [បណ្ណាល័យលើការបង្ហាញទិន្នន័យ Pandas ](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html )
**ការរៀន Python**
* [រៀន Python ជា មួយកម្រងតុក្កតា និងរាង Fractals ដោយរីករាយ ](https://github.com/shwars/pycourse )
* [ចាប់ផ្តើមជំហានដំបូង ជាមួយ Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum ) ផ្លូវការ សិក្សា នៅ លើ [Microsoft Learn ](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum )
**ការស្វែង រៀន Python**
* [រៀន Python ជា របៀបរីករាយជាមួយ Turtle Graphics និង Fractals ](https://github.com/shwars/pycourse )
* [ចាប់ផ្តើមជំហានដំបូង របស់អ្នក ជាមួយ Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum ) ផ្លូវសិក្សាលើ [Microsoft Learn ](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum )
## បេសកកម្ម
## ការប្រឡង
[អនុវត្តការសិក្សាទិន្នន័យ អោយលម្អិតជាងនេះសម្រាប់ប្រលងខាង លើ](assignment.md )
[អនុវត្តការសិក្សាទិន្នន័យ លម្អិតសម្រាប់បញ្ហានៅ លើ](assignment.md )
## អំណោយផល
## ការដាក់ទស្សនៈ
មេរៀននេះត្រូវបានសរសេរ ជាមួយ ♥️ ដោយ [Dmitry Soshnikov ](http://soshnikov.com )
មេរៀននេះត្រូវបានបង្កើត ជាមួយ ♥️ ដោយ [Dmitry Soshnikov ](http://soshnikov.com )
---
<!-- CO - OP TRANSLATOR DISCLAIMER START -->
**ការបដិសេធ**៖
ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator ](https://github.com/Azure/co-op-translator )។ ខណៈពេលយើងខិតខំអោយបានភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិក្ដីអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសារដើមគួរត្រូវបានយកជាអនុស្សាវរីយ៍ដ៏ទាន់សម័យ។ សម្រាប់ព័ត៌មានដែលមានសារៈសំខាន់ ការបកប្រែដោយអ្នកជំនាញមនុស្សត្រូវបានណែនាំ។ យើង មិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកបفا្ציותខុសដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ ។
**ការបដិសេធ**:
ឯកសារនេះត្រូវបានបម្លែងភាសា ដោយប្រើសេវាបម្លែងភាសា AI [Co-op Translator ](https://github.com/Azure/co-op-translator )។ ទោះយើងខ្ញុំមានក្តីប្រាថ្នាឱ្យបានច្បាស់លាស់ តែសូមយល់ដឹងថាការបម្លែងដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាទីតាំងគួរត្រូវបានគេប្រើជាប្រភពច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើប្រាស់ការប្រែដោយមនុស្សជំនាញ។ យើងខ្ញុំ មិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបន្ទាប់ពីការប្រើប្រាស់ការបម្លែងនេះនោះទេ ។
<!-- CO - OP TRANSLATOR DISCLAIMER END -->