Loops & Functions
ஒரு டேட்டாஃப்பிரேமில் உள்ளவற்றை for லூப் மூலம் பல்வேறு விதங்களில் வெளிப்படுத்திக் காட்டலாம். அவை கீழே கொடுக்கப்பட்டுள்ளன. அடுத்து lambda எனும் ஒற்றை வரி பங்ஷன் மூலமும், user defined function மூலமும் டேட்டாஃப்பிரேம் மதிப்புகளில் மாற்றம் செய்வது எப்படி என்று காட்டப்பட்டுள்ளது. கடைசியாக reindex_like() எனும் பங்ஷன் மூலம் ஒரு டேட்டாஃப்பிரேமின் வடிவத்தை மற்றொரு டேட்டாஃப்பிரேமைப் போலவே அமைப்பது எப்படி என்று காட்டப்பட்டுள்ளது.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pandas as pd | |
import numpy as np | |
l2 = [[90,83,67,83,45],[68,89,75,56,73],[58,88,60,90,100]] | |
df = pd.DataFrame(l2,columns=['Tamil','English','Maths','Science','Social'],index=['Ramesh','Suresh','Kamesh'],dtype='int32') | |
for i in df: | |
print (i) | |
for i in df.itertuples(): | |
print (i) | |
for i,j in df.iteritems(): | |
print (i) | |
print (j) | |
for i,j in df.iterrows(): | |
print (i) | |
print (j) | |
print (df['Tamil'].isin ([68,58])) | |
print (df.apply(lambda x: x+2)) | |
def hi(a,b): | |
return a+b | |
print (df.pipe(hi,2)) | |
l2 = [[90,83,45],[68,89,73],[58,88,100]] | |
df2 = pd.DataFrame(l2,columns=['Tamil','English','Social'],index=['Ramesh','Suresh','Jagadesh'],dtype='int32') | |
print (df2) | |
print (df2.reindex_like(df)) |
கீழ்கண்டவாறு ஒரு டேட்டாஃப்பிரேமை உருவாக்கிக் கொள்வோம்.
l2 = [[90,83,67,83,45],[68,89,75,56,73],[58,88,60,90,100]]
df = pd.DataFrame(l2,columns=[‘Tamil’,’English’,’Maths’,’Science’,’Social’],index=[‘Ramesh’,’Suresh’,’Kamesh’],dtype=’int32′)
பின் for லூப் மூலம் அந்த டேட்டாஃப்பிரேமை iterate செய்தால், அது தலைப்புகளின் பெயர்களை மட்டும் வெளிப்படுத்துவதைக் காணலாம்.
for i in df:
print (i)
Tamil
English
Maths
Science
Social
டேட்டாஃப்பிரேமின் மீது itertuples எனக் கொடுத்து அதனை சுழற்சி செய்து பார்த்தால், அது ஒவ்வொரு row-ஆக வெளிப்படுத்துவதைக் காணலாம்.
for i in df.itertuples():
print (i)
Pandas(Index=’Ramesh’, Tamil=90, English=83, Maths=67, Science=83, Social=45)
Pandas(Index=’Suresh’, Tamil=68, English=89, Maths=75, Science=56, Social=73)
Pandas(Index=’Kamesh’, Tamil=58, English=88, Maths=60, Science=90, Social=100)
அதுவே iteritems எனக் கொடுத்து iterate செய்தால், column-ன் பெயர் மற்றும் அதில் சேமிக்கப்பட்டுள்ள row wise தரவுகள் ஆகியவற்றைத் தொடர்ந்து வெளிப்படுத்தும்.
for i,j in df.iteritems():
print (i)
print (j)
Tamil
Ramesh 90
Suresh 68
Kamesh 58
Name: Tamil, dtype: int32
.
.
.
.
Social
Ramesh 45
Suresh 73
Kamesh 100
Name: Social, dtype: int32
iterrows எனக் கொடுத்தால் row-ன் பெயர் மற்றும் அதில் சேமிக்கப்பட்டுள்ள column wise தரவுகள் ஆகியவற்றை வெளிப்படுத்தும்.
for i,j in df.iterrows():
print (i)
print (j)
Ramesh
Tamil 90
English 83
Maths 67
Science 83
Social 45
Name: Ramesh, dtype: int32
.
.
.
Kamesh
Tamil 58
English 88
Maths 60
Science 90
Social 100</span
Name: Kamesh, dtype: int32
ஒரு டேட்டாஃப்பிரேம் column-ல் உள்ள மதிப்புகள் குறிப்பிட்ட சில மதிப்புகளைக் கொண்டிருக்கின்றனவா இல்லையா என்பதை சோதிக்க isin என்பது பயன்படுகிறது.
print (df[‘Tamil’].isin ([68,58]))
Ramesh False
Suresh True
Kamesh True
Name: Tamil, dtype: bool
Lambda எனும் ஒற்றை வரி பங்ஷன் மூலம் அனைத்து மதிப்புகளுடனும் 2 கூட்டி காட்டப்பட்டுள்ளது.
print (df.apply(lambda x: x+2))
Tamil English Maths Science Social
Ramesh 92 85 69 85 47
Suresh 70 91 77 58 75
Kamesh 60 90 62 92 102
அதே வேலை hi எனும் user defined function கொண்டு செய்யப்பட்டுள்ளது. டேட்டாஃப்பிரேமுடன் அந்த பங்ஷனை இணைக்க pipe பயன்பட்டுள்ளது.
def hi(a,b):
return a+b
print (df.pipe(hi,2))
இங்கு df2 எனும் இரண்டாவது டேட்டாஃப்பிரேம் உருவாக்கப்பட்டுள்ளது. இதனை df-வுடன் ஒப்பிடும்போது ரமேஷ், சுரேஷ் ஆகிய இரண்டு இன்டெக்ஸ் மற்றும் தமிழ், இங்கிலீஷ், சோஷியல் ஆகிய மூன்று columns-ஐ மட்டும் பொதுவாகப் பெற்றுள்ளது.
l2 = [[90,83,45],[68,89,73],[58,88,100]]
df2 = pd.DataFrame(l2,columns=[‘Tamil’,’English’,’Social’],index=[‘Ramesh’,’Suresh’,’Jagadesh’],dtype=’int32′)
print (df2)
Tamil English Social
Ramesh 90 83 45
Suresh 68 89 73
Jagadesh 58 88 100
எனவே df2-ன் இன்டெக்ஸை df போலவே அமைக்கும்போது இல்லாத rows, columns –க்கு null மதிப்பினை இட்டு வடிவத்தை அதே போலவே அமைக்கும்.
print (df2.reindex_like(df))
Tamil English Maths Science Social
Ramesh 90.0 83.0 NaN NaN 45.0
Suresh 68.0 89.0 NaN NaN 73.0
Kamesh NaN NaN NaN NaN NaN