දෙවන මොඩියුලයේදී, අපි අපගේ ව්යාපෘතියට අවශ්ය දත්ත කට්ටලය (dataset) සංකල්පීයව නිර්මාණය කර, Features (X) සහ Target (y) යනු මොනවාදැයි හඳුනා ගත්තෙමු. දැන්, එම සංකල්පීය දත්ත, අපගේ Python වැඩසටහන තුළට ගෙනැවිත්, එය සමඟ ප්රායෝගිකව වැඩ කිරීමට කාලයයි. මේ සඳහා, අපට Data Science සහ දත්ත විශ්ලේෂණයේදී නැතුවම බැරි, බලවත්ම මෙවලමක් අවශ්ය වෙනවා. ඒ තමයි Pandas library එක.
සරල උපමාවක්: Python කියන්නේ අපේ වැඩමුළුව (workshop) නම්, Pandas කියන්නේ ඒ තුළ ඇති අපගේ අධි-තාක්ෂණික, බහු-කාර්ය වැඩ මේසයයි (workbench). අපේ අමුද්රව්ය (raw material), එනම් දත්ත, මේ වැඩ මේසය මත තබා, අපට එය පරීක්ෂා කිරීමට, පිරිසිදු කිරීමට, කැපීමට, සහ අපට අවශ්ය හැඩයට සකස් කර ගැනීමට හැකියාව ලැබේ. Pandas නොමැතිව Python වලින් දත්ත විශ්ලේෂණය කිරීම, හරියට වැඩ මේසයක් නොමැතිව ලී වැඩ කරනවා වැනිය - එය කළ නොහැකි දෙයක් නොවේ, නමුත් ඉතා අපහසු සහ අකාර්යක්ෂම වේ.
මෙම මොඩියුලයේදී, අපි Pandas ලෝකයට අපගේ පළමු පියවර තබමු. අපි Pandas install කරන ආකාරය, අපගේ Python script එකට එය ගෙන්වා ගන්නා (import) ආකාරය, අපගේ ශිෂ්ය දත්ත DataFrame නම් වූ විශේෂ ව්යුහයකට load කරගන්නා ආකාරය, සහ එම දත්තවල මූලික පරීක්ෂාවක් සිදු කරන ආකාරය ඉගෙන ගනිමු.
Pandas Install + Import කිරීම
Installation (ස්ථාපනය කිරීම)
Pandas යනු Python වල සම්මත library එකක් නොවේ, එබැවින් එය භාවිතා කිරීමට පෙර අප එය අපගේ පරිගණකයට ස්ථාපනය කරගත යුතුය. මේ සඳහා, අපි Python හි පැකේජ කළමනාකරු (package manager) වන pip භාවිතා කරමු. `pip` යනු Python සඳහා වන වෙනත් libraries සහ tools අන්තර්ජාලයෙන් බාගත කර (download) ස්ථාපනය කර ගැනීමට අපට උපකාරී වන වැඩසටහනකි.
ඔබගේ පරිගණකයේ Command Prompt (Windows) හෝ Terminal (Mac/Linux) එක විවෘත කර, පහත විධානය (command) ටයිප් කර Enter යතුර ඔබන්න.
මෙම විධානය මගින් `pip` විසින් Pandas library එකට අදාළ සියලුම ගොනු අන්තර්ජාලයෙන් සොයාගෙන, ඔබගේ Python පරිසරය තුළ ස්වයංක්රීයවම ස්ථාපනය කරනු ඇත. (සටහන: ඔබ Anaconda හෝ Google Colab වැනි Data Science සඳහාම වෙන්වූ පරිසරයක් භාවිතා කරන්නේ නම්, Pandas බොහෝ විට පෙර-ස්ථාපනය කර (pre-installed) ඇති බැවින්, මෙම පියවර අවශ්ය නොවනු ඇත.)
Import (ගෙන්වා ගැනීම)
Pandas ස්ථාපනය කළ පසු, අප ලියන සෑම Python script එකකම එය භාවිතා කිරීමට පෙර, එය "import" කරගත යුතුය. Import කිරීම යනු, "හරි, Python, මට මේ script එකේදී Pandas library එකේ තියෙන functions සහ tools පාවිච්චි කරන්න ඕන, ඒ නිසා ඒ ටික ලෑස්ති කරලා දෙන්න" කියා පැවසීම වැනිය.
Pandas import කිරීම සඳහා වන ලෝකය පුරා පිළිගත් සම්මතය (standard convention) පහත පරිදි වේ:
අපි මෙම පේළිය විග්රහ කර බලමු:
- `import pandas`: "Pandas" නමැති library එක මගේ script එකට ගෙන්වා ගන්න.
- `as pd`: මෙතැන් සිට, මෙම script එක තුළ, මම "pandas" යන දිගු වචනය ටයිප් කරනවා වෙනුවට, එහි කෙටි නම (alias) වන "pd" යන්න භාවිතා කරමි.
මෙම `as pd` කොටස අනිවාර්ය නැත, නමුත් ලොව පුරා සිටින සියලුම Data Scientists සහ Python developers ලා මෙම සම්මතය අනුගමනය කරන නිසා, ඔබගේ code අන් අයට කියවීමට සහ තේරුම් ගැනීමට එය ඉතා පහසු වේ.
Data Load කරගැනීම
දැන් Pandas අපගේ වැඩමුළුවට පැමිණ ඇත (`import` කර ඇත). ඊළඟ පියවර වන්නේ අපගේ දත්ත වැඩ මේසය මතට ගැනීමයි. එනම්, අපගේ ශිෂ්ය ලකුණු දත්ත Pandas DataFrame එකකට load කර ගැනීමයි. Module 2 හිදී සාකච්ඡා කළ ක්රම දෙකටම මෙය සිදුකරන ආකාරය බලමු.
ක්රමය 1: Python Dictionary එකකින් DataFrame සෑදීම
අපගේ දත්ත program එක තුළම Dictionary එකක් ලෙස තිබේ නම්, එය DataFrame එකක් බවට පත් කිරීම ඉතා පහසුය.
import pandas as pd
# 2. Our data from Module 2
student_data = {
'StudentID': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'Math': [85, 92, 78, 65, 95, 88, 71, 80, 98, 75],
'Science': [90, 88, 82, 70, 98, 85, 75, 78, 95, 80],
'English': [75, 85, 80, 72, 92, 89, 68, 83, 97, 79],
'FinalScore': [83, 88, 80, 69, 95, 87, 71, 80, 97, 78]
}
# 3. Create the DataFrame using the pd.DataFrame() function
df = pd.DataFrame(student_data)
# 4. Print the DataFrame to see the result
print(df)
මෙම code එක run කළ විට, ඔබට ඉතා පිළිවෙලට සකස් වූ, වගු ආකාරයේ ප්රතිදානයක් (output) දැකගත හැකි වනු ඇත. මෙහිදී `pd.DataFrame()` යනු Pandas මගින් සපයන, dictionary වැනි දත්ත ව්යුහයන්, DataFrame බවට පත් කරන function එකයි. Data scientists ලා සාමාන්යයෙන් DataFrame එකක් ගබඩා කරන විචල්යය (variable) සඳහා `df` යන නම භාවිතා කරයි.
ක්රමය 2: CSV ගොනුවකින් DataFrame සෑදීම (වඩාත් සුලභ ක්රමය)
සැබෑ ලෝකයේ ව්යාපෘති වලදී, දත්ත බොහෝ විට අපට ලැබෙන්නේ CSV, Excel, বা database වැනි බාහිර මූලාශ්ර වලිනි. Pandas සතුව මෙම සියලුම මූලාශ්ර වලින් දත්ත කියවීම සඳහා විශේෂිත functions ඇත. අපගේ දත්ත `students.csv` නමැති CSV ගොනුවක තිබේ නම්, එය DataFrame එකකට load කරගන්නේ මෙසේය.
import pandas as pd
# 2. Load the data from the CSV file using pd.read_csv()
# Make sure 'students.csv' is in the same folder as your Python script
df = pd.read_csv('students.csv')
# 3. Print the DataFrame
print(df)
මෙහිදී `pd.read_csv()` function එක මගින්, ලබාදුන් ගොනුව කියවා, එහි ඇති දත්ත ස්වයංක්රීයවම DataFrame එකක් බවට පත් කරයි. මෙය අතිශයින්ම බලවත් සහ පහසු ක්රමයකි.
Columns Select කිරීම, head() සහ describe() යොදාගැනීම
නියමයි! දැන් අපේ දත්ත DataFrame එකක් තුළට පැමිණ ඇත. ඕනෑම data analyst කෙනෙක් දත්ත load කළ පසු කරන පළමුම දෙය වන්නේ, එය නිවැරදිව load වී ඇත්දැයි පරීක්ෂා කර, දත්ත පිළිබඳ මූලික අවබෝධයක් ලබා ගැනීමයි. මේ සඳහා Pandas සතුව ඉතා ප්රයෝජනවත් functions කිහිපයක් තිබේ.
`.head()` - දත්තවල පෙරදසුනක්
අපගේ dataset එකේ පේළි (rows) මිලියනයක් තිබුනේ නම්, `print(df)` මගින් සම්පූර්ණ dataset එකම print කිරීම ප්රායෝගික නොවේ. `.head()` method එක මගින් අපට dataset එකේ මුල් පේළි 5 පමණක් පෙන්වයි. මෙය දත්ත නිවැරදිව load වී ඇත්ද, තීරු නම් (column names) නිවැරදිද යන්න ඉක්මනින් බලා ගැනීමට ඇති හොඳම ක්රමයයි.
print(df.head())
ඔබට මුල් පේළි 3ක් පමණක් බැලීමට අවශ්ය නම්, `df.head(3)` ලෙස වරහන් තුළ ඔබට අවශ්ය පේළි ගණන ලබා දිය හැක. (මීට සමාන `.tail()` method එක මගින් අවසාන පේළි 5 පෙන්වයි.)
`.shape` - දත්තවල ප්රමාණය
DataFrame එකේ පේළි සහ තීරු කීයක් තිබේදැයි දැනගැනීමට `.shape` attribute එක භාවිතා කළ හැක. මෙය function එකක් නොවන නිසා, වරහන් () අවශ්ය නොවේ.
print(df.shape)
# Output for our data will be: (10, 5)
මෙම ප්රතිදානයෙන් (10, 5) අපට කියවෙන්නේ, අපගේ dataset එකේ පේළි 10ක් සහ තීරු 5ක් ඇති බවයි.
`.describe()` - සංඛ්යානමය සාරාංශය
මෙය Pandas වල ඇති මැජික් එකක් වැනි function එකකි. `.describe()` method එක මගින්, අපගේ DataFrame එකේ ඇති සංඛ්යාත්මක (numerical) තීරු සඳහා වැදගත් සංඛ්යානමය අගයන් රැසක සාරාංශයක් එකවර ජනනය කරයි.
print(df.describe())
මෙම විධානය මගින් ලැබෙන ප්රතිදානය මුලදී ටිකක් සංකීර්ණ ලෙස පෙනුනත්, එය ඉතා වටිනා තොරතුරු සපයයි. අපි එය බිඳ දමා තේරුම් ගනිමු.
| Statistic | Math | Science | ... |
|---|---|---|---|
| count | 10.0 | 10.0 | ... |
| mean | 82.7 | 84.1 | ... |
| std | 10.4 | 8.9 | ... |
| min | 65.0 | 70.0 | ... |
| 25% | 75.7 | 78.5 | ... |
| 50% | 82.5 | 83.5 | ... |
| 75% | 91.0 | 89.5 | ... |
| max | 98.0 | 98.0 | ... |
- count: එම තීරුවේ ඇති හිස් නොවන (non-empty) අගයන් ගණන.
- mean: එම තීරුවේ ඇති සියලුම අගයන්ගේ සාමාන්යය (average). (උදා: ගණිතය සඳහා සාමාන්ය ලකුණ 82.7කි).
- std: සම්මත අපගමනය (Standard Deviation). මෙය අගයන්, සාමාන්යයෙන් කොපමණ දුරකට පැතිරී ඇත්දැයි මනින මිම්මකි.
- min: එම තීරුවේ ඇති කුඩාම අගය (minimum). (උදා: ගණිතය සඳහා ලැබුණු අඩුම ලකුණ 65).
- 25% (Q1): දත්ත වලින් 25%ක් මෙම අගයට වඩා අඩුය.
- 50% (Q2/Median): මධ්යස්ථය. දත්ත වලින් හරියටම 50%ක් මෙම අගයට වඩා අඩුය. මෙය සාමාන්යයට වඩා සමහර විට දත්තවල කේන්ද්රය මැනීමට හොඳ මිම්මකි.
- 75% (Q3): දත්ත වලින් 75%ක් මෙම අගයට වඩා අඩුය.
- max: එම තීරුවේ ඇති විශාලතම අගය (maximum). (උදා: ගණිතය සඳහා ලැබුණු ඉහළම ලකුණ 98).
මෙම `.describe()` ප්රතිදානය දෙස එක බැල්මක් හෙලීමෙන් පමණක්, අපට අපගේ දත්තවල ව්යාප්තිය, පරාසය, සහ කේන්ද්රීය ප්රවණතා පිළිබඳව ඉතා හොඳ චිත්රයක් මවා ගත හැකිය.