எளிய தமிழில் Pandas-10

Handling Null values

டேட்டாஃப்பிரேமில் Null மதிப்புகளைக் கையாள்வதில் பல்வேறு விதங்கள் உள்ளன. அவைகளைப் பற்றி இப்பகுதியில் காணலாம்.


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')
df = df.rolling(window=3).mean()
print (df)
print (df.isnull())
print (df.notnull())
print (df.dropna())
print (df.fillna(0))
print (df.fillna(method='bfill')) # pad / fill for forward fill; bfill / backfill from backward
print (df.fillna(method='bfill',limit=1))
print (df.sum())
print (df.replace({72:100}))

முதலில் Null மதிப்புகளைப் பெற்றிருக்கும் ஒரு டேட்டாஃப்பிரேமை பின்வருமாறு உருவாக்கிக் கொள்ளவும்.

df = df.rolling(window=3).mean()
print (df)

       Tamil English   Maths     Science   Social
Ramesh NaN   NaN       NaN       NaN       NaN
Suresh NaN   NaN       NaN       NaN       NaN
Kamesh 72.0  86.666667 67.333333 76.333333 72.666667

பின் அதில் Null மதிப்பு உள்ளதா என சோதிக்க isnull () பயன்படும். இது Null மதிப்பு இருக்கும் இடங்களில் மட்டும் True என்பதை வெளிப்படுத்தும்.

print (df.isnull())

       Tamil English Maths Science Social
Ramesh True  True    True  True    True
Suresh True  True    True  True    True
Kamesh False False   False False   False

Null மதிப்பு இல்லையா என சோதிக்க notnull () பயன்படும். இது Null மதிப்பு இல்லாத இடங்களில் True என்பதை வெளிப்படுத்தும்.

print (df.notnull())

       Tamil English Maths Science Social
Ramesh False False   False False   False
Suresh False False   False False   False
Kamesh True  True    True  True    True

Null மதிப்புகளை டேட்டாஃப்பிரேமில் இருந்து நீக்க dropna () பயன்படும்.

print (df.dropna())

       Tamil English   Maths     Science   Social
Kamesh 72.0  86.666667 67.333333 76.333333 72.666667

Null மதிப்புகளை சுழியம் மதிப்பால் இடமாற்றம் செய்ய விரும்பினால் fillna – ஐப் பயன்படுத்தலாம்.

print (df.fillna(0))

       Tamil English   Maths     Science   Social
Ramesh 0.0   0.000000  0.000000  0.000000  0.000000
Suresh 0.0   0.000000  0.000000  0.000000  0.000000
Kamesh 72.0  86.666667 67.333333 76.333333 72.666667

Null மதிப்புகளை அதற்கு அடுத்துள்ள row மதிப்புகளால் நிரப்ப விரும்பினால் method=bfill எனக் கொடுக்கலாம். இது backward fill எனப் பொருள்படும். அதேபோல வெறும் fill என்பது ஃபார்வேர்ட் fill- ஐக் குறிக்கும்.

print (df.fillna(method=’bfill’)) # pad / fill for forward fill; bfill / backfill from backward

       Tamil English   Maths     Science   Social
Ramesh 72.0  86.666667 67.333333 76.333333 72.666667
Suresh 72.0  86.666667 67.333333 76.333333 72.666667
Kamesh 72.0  86.666667 67.333333 76.333333 72.666667

method=bfill என்பதுடன் limit=1 எனக் கொடுத்தால் கீழிருந்து மேலாக ஒரே ஒரு row-ஐ மட்டும் நிரப்பும்.

print (df.fillna(method=’bfill’,limit=1))

       Tamil English   Maths     Science   Social
Ramesh NaN   NaN       NaN       NaN       NaN
Suresh 72.0  86.666667 67.333333 76.333333 72.666667
Kamesh 72.0  86.666667 67.333333 76.333333 72.666667

Null மதிப்புகளைக் கொண்ட டேட்டாஃப்பிரேமின் மீது sum() என்பது போன்ற aggregate functions-ஐப் பயன்படுத்தினால், அவை Null மதிப்புகளைத் தவிர்த்து மீதமுள்ள மதிப்புகளை மட்டும் கணக்கில் எடுத்துக் கொண்டு செயல்படுவதைக் காணலாம்.

print (df.sum())

Tamil   72.000000
English 86.666667
Maths   67.333333
Science 76.333333
Social  72.666667
dtype: float64

ஒரு மதிப்பினை மற்றொரு மதிப்பால் இடமாற்றம் செய்ய replace() பயன்படுகிறது.

print (df.replace({72:100}))

       Tamil  English   Maths     Science   Social
Ramesh NaN    NaN       NaN       NaN       NaN
Suresh NaN    NaN       NaN       NaN       NaN
Kamesh 100.0  86.666667 67.333333 76.333333 72.666667

%d bloggers like this: