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

Text Processing

ஒரு டேட்டாஃப்பிரேம் / சீரீஸில் சேமிக்கப்பட்டுள்ள சொற்களைப் பகுத்துப் பார்த்து ஆய்வு செய்வதற்கு பயன்படும் functions-ஐ இப்பகுதியில் காணலாம். பொதுவாக இதுபோன்ற பங்க்ஷன் சீரீஸின் மீதுதான் செயல்படும். டேட்டாஃப்பிரேமாகவே இருந்தாலும், அதிலிருந்து ஒரு சீரீசை எடுத்து, அதன் மீதுதான் இதுபோன்ற functions-ஐ அப்ளை செய்ய முடியும்.

இவைகளின் தொகுப்பு பின்வருமாறு.


import pandas as pd
df = pd.DataFrame({'Languages': pd.Series(['Tamil','English']), 'Subjects': pd.Series(['Maths','Science','Social'])})
print (df)
print (df['Languages'].str.upper()) # lower(), swapcase(), islower(), isupper(), isnumeric()
print (df['Languages'].str.split('i'))
print (df['Languages'].str.contains('i'))
print (df['Languages'].str.len())
print (df['Subjects'].str.startswith('S')) # endswith()
print (df['Subjects'].str.count('e'))
print (df['Subjects'].str.find('e'))
print (df['Subjects'].str.findall('e'))
print (df['Languages'].str.replace('i','e'))
print (df['Languages'].str.cat(sep=','))
s = pd.Series(['Ramu','Somu','Jothi','Rathi','Jothi'])
print (s.str.get_dummies())
print (s.str.repeat(4))

முதலில் மொழிகள் மற்றும் பாடங்களின் பெயர்களைக் கொண்ட இரண்டு சீரீஸ், ஒரு டேட்டாஃப்பிரேமில் சேமிக்கப்படுகிறது.

df = pd.DataFrame({‘Languages’: pd.Series([‘Tamil’,’English’]), ‘Subjects’: pd.Series([‘Maths’,’Science’,’Social’])})
print (df)
Languages Subjects
0 Tamil Maths
1 English Science
2 NaN Social

பிறகு Language எனும் சீரீஸில் சேமிக்கப்பட்டுள்ள சொற்களை மட்டும் கேபிடல் எழுத்துக்களில் அமைக்க விரும்பினால், அதற்கான பங்க்ஷன் பின்வருமாறு. அது தொடர்பான இன்னும் சில பங்க்ஷன்கள் கமென்ட் செய்து காட்டப்பட்டுள்ளது.

print (df[‘Languages’].str.upper()) # lower(), swapcase(), islower(), isupper(), isnumeric()
0 TAMIL
1 ENGLISH
2 NaN
Name: Languages, dtype: object

ஏதேனும் ஒரு குறிப்பிட்ட எழுத்து அல்லது குறியீடு மூலம் சொற்களைப் பிரித்து பல்வேறு வார்த்தைகளாக ஒரு லிஸ்ட் உள் அமைக்க split() பயன்படுகிறது.

print (df[‘Languages’].str.split(‘i’))
0 [Tam, l]
1 [Engl, sh]
2 NaN
Name: Languages, dtype: object

ஏதேனும் ஒரு குறிப்பிட்ட எழுத்து அல்லது குறியீடு நமது சீரீஸில் உள்ளதா இல்லையா என்பதைக் கண்டுபிடிக்க contains () பயன்படுகிறது.

print (df[‘Languages’].str.contains(‘i’))
0 True
1 True
2 NaN
Name: Languages, dtype: object

நமது சீரீஸில் சேமிக்கப்பட்டுள்ள சொற்களின் நீளங்களைக் கண்டுபிடிக்க len() பயன்படுகிறது.

print (df[‘Languages’].str.len())
0 5.0
1 7.0
2 NaN
Name: Languages, dtype: float64

ஒரு குறிப்பிட்ட எழுத்தில் சொற்கள் தொடங்கியுள்ளதா இல்லையா என்பதைக் கண்டுபிடிக்க startswith() பயன்படுகிறது.

print (df[‘Subjects’].str.startswith(‘S’)) # endswith()
0 False
1 True
2 True
Name: Subjects, dtype: bool

ஒரு குறிப்பிட்ட எழுத்து ஒரு சொல்லில் எத்தனை முறை வந்துள்ளது என்பதைக் கண்டுபிடிக்க count() பயன்படுகிறது.

print (df[‘Subjects’].str.count(‘e’))
0 0
1 2
2 0
Name: Subjects, dtype: int64

ஒரு குறிப்பிட்ட எழுத்து ஒரு சொல்லில் எந்த இடத்தில் அமைந்துள்ளது என்பதைக் கண்டுபிடிக்க find() பயன்படுகிறது. இதன் வெளியீடு 0 முதல் அதன் நீளத்திற்கு ஏற்ப அமையும். -1 என்றால் அந்த எழுத்து எவ்விடத்திலும் அமையவில்லை என்று பொருள்.

print (df[‘Subjects’].str.find(‘e’))
0 -1
1 3
2 -1
Name: Subjects, dtype: int64

print (df[‘Subjects’].str.findall(‘e’))
0 []
1 [e, e]
2 []
Name: Subjects, dtype: object

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

print (df[‘Languages’].str.replace(‘i’,’e’))
0 Tamel
1 Englesh
2 NaN
Name: Languages, dtype: object

சீரீஸில் சேமிக்கப்பட்டுள்ள சொற்களை ஏதோ ஒரு குறியீடு கொண்டு பிரித்து வெளிப்படுத்த separator பயன்படுகிறது.

print (df[‘Languages’].str.cat(sep=’,’))
Tamil,English

ஒரு சீரீஸில் உள்ள unique சொற்களை எடுத்து அவை ஒவ்வொன்றும் எத்தனை முறை வந்துள்ளன என்பதைக் கண்டுபிடிக்க get_dummies பயன்படும்.

s = pd.Series([‘Ramu’,’Somu’,’Jothi’,’Rathi’,’Jothi’])

print (s.str.get_dummies())
Jothi Ramu Rathi Somu
0 0 1 0 0
1 0 0 0 1
2 1 0 0 0
3 0 0 1 0
4 1 0 0 0

ஒவ்வொரு சொல்லையும் குறிப்பிட்ட முறைகள் திரும்பத் திரும்ப அமைத்து வெளிப்படுத்த repeat() பயன்படுகிறது.

print (s.str.repeat(4))
0 RamuRamuRamuRamu
1 SomuSomuSomuSomu
2 JothiJothiJothiJothi
3 RathiRathiRathiRathi
4 JothiJothiJothiJothi
dtype: object

%d bloggers like this: