DataFrame creation – Multiple ways
ஒரு டேட்டாஃப்பிரேமை பல்வேறு வழிகளில் உருவாக்கலாம். அறிமுகத்தின் போது ஒரு லிஸ்ட் உள்ளே பல லிஸ்டை கொடுத்து உருவாக்கினோம் அல்லவா! அதேபோல இன்னும் என்னென்ன வழிகளில் எல்லாம் உருவாக்கலாம் என்பதை இப்பகுதியில் காணலாம்.
அவை பின்வருமாறு.
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 | |
d = {'Tamil' : 90, 'English' : 83, 'Maths' : 67, 'Science' : 83, 'Social' : 45} | |
s = pd.Series(d) | |
print (s) | |
l = [{'Tamil' : 90, 'English' : 83, 'Maths' : 67, 'Science' : 83, 'Social' : 45}, | |
{'Tamil' : 68, 'English' : 89, 'Maths' : 75, 'Science' : 56, 'Social' : 73}, | |
{'Tamil' : 58, 'English' : 88, 'Maths' : 60, 'Science' : 90, 'Social' : 100}] | |
df = pd.DataFrame(l) | |
print (df) | |
df = df[['Tamil','English','Maths','Science','Social']] | |
print (df) | |
d = {'Tamil' : [90,68,58], 'English' : [83,89,88], 'Maths' : [67,75,60], 'Science' : [83,56,90], 'Social' : [45,73,100]} | |
df = pd.DataFrame(d) | |
print (df) | |
d = {'Tamil' : pd.Series([90,68,58]), 'English' : pd.Series([83,89,88]), 'Maths' : pd.Series([67,75,60]), | |
'Science' : pd.Series([83,56,90]), 'Social' : pd.Series([45,73,100])} | |
df = pd.DataFrame(d) | |
print (df) | |
df['Environmental Science']=pd.Series([90,92,98]) | |
print (df) | |
df = pd.DataFrame(d,columns=['Tamil','English','Social']) | |
print (df) |
நிரலுக்கான விளக்கம்:
From list of dicts
முதலில் ஒரு டிக்சனரி மூலம் சீரீஸை உருவாக்குவது எப்படி என்பதைத் தெரிந்து கொள்வோம். அப்போதுதான் இதே போல பல சீரீஸை கொடுத்து ஒரு டேட்டாஃப்பிரேமை உருவாக்க முடியும். ஏனெனில் டேட்டாஃப்பிரேம் என்பது பல்வேறு சீரீஸ்களின் தொகுப்பு ஆகும்.
இது பின்வருமாறு.
d = {‘Tamil’ : 90, ‘English’ : 83, ‘Maths’ : 67, ‘Science’ : 83, ‘Social’ : 45}
s = pd.Series(d)
print (s)
Tamil 90
English 83
Maths 67
Science 83
Social 45
dtype: int64
மேற்கூறியவாறே பல டிக்சனரிகளை ஒரு லிஸ்டுக்குள் கொடுத்து டேட்டாஃப்பிரேம் உருவாக்கிக் காட்டப்பட்டுள்ளது.
l = [{‘Tamil’ : 90, ‘English’ : 83, ‘Maths’ : 67, ‘Science’ : 83, ‘Social’ : 45},
{‘Tamil’ : 68, ‘English’ : 89, ‘Maths’ : 75, ‘Science’ : 56, ‘Social’ : 73},
{‘Tamil’ : 58, ‘English’ : 88, ‘Maths’ : 60, ‘Science’ : 90, ‘Social’ : 100}]
df = pd.DataFrame(l)
print (df)
English Maths Science Social Tamil
0 83 67 83 45 90
1 89 75 56 73 68
2 88 60 90 100 58
ஒரு லிஸ்டுக்குள் இருக்கும் டிக்சனரியின் கீஸ் column-ஆக மாறும்போது அது ஆல்பபெட் முறையில் columns-ஐ அமைக்கும். அதனை நாம் விரும்புகின்ற வரிசையில் அமைக்க விரும்பினால் பின்வருமாறு கொடுக்க வேண்டும்.
df = df[[‘Tamil’,’English’,’Maths’,’Science’,’Social’]]
print (df)
Tamil English Maths Science Social
0 90 83 67 83 45
1 68 89 75 56 73
2 58 88 60 90 100
From dict of lists
மேற்கூறியவாறு அல்லாமல் நேரடியாக டிக்சனரியின் key-ஆக columns-ஐயும், அதன் மதிப்புகளை ஒரு லிஸ்ட் ஆகவும் கொடுத்து டேட்டாஃப்பிரேமை உருவாக்கினால், column வரிசையை மாற்ற வேண்டிய அவசியம் இருக்காது. ஏனெனில் நாம் கொடுக்கின்ற வரிசையிலே column அமைக்கப்படும். இது பின்வருமாறு.
d = {‘Tamil’ : [90,68,58], ‘English’ : [83,89,88], ‘Maths’ : [67,75,60], ‘Science’ : [83,56,90], ‘Social’ : [45,73,100]}
df = pd.DataFrame(d)
print (df)
Tamil English Maths Science Social
0 90 83 67 83 45
1 68 89 75 56 73
2 58 88 60 90 100
From dict of series
அதேபோல ஒரு டிக்சனரியின் கீ மதிப்புகளை லிஸ்ட் ஆக அல்லாமல் சீரீஸ் ஆக கொடுத்தும் டேட்டாஃப்பிரேமை உருவாக்கலாம். இது பின்வருமாறு.
d = {‘Tamil’ : pd.Series([90,68,58]), ‘English’ : pd.Series([83,89,88]), ‘Maths’ : pd.Series([67,75,60]),’Science’ : pd.Series([83,56,90]), ‘Social’ : pd.Series([45,73,100])}
df = pd.DataFrame(d)
print (df)
Tamil English Maths Science Social
0 90 83 67 83 45
1 68 89 75 56 73
2 58 88 60 90 100
புதிதாக ஒரு column-ஐ இணைக்க விரும்பினால் அது பின்வருமாறு அமையும்.
df[‘Environmental Science’]=pd.Series([90,92,98])
print (df)
Tamil English Maths Science Social Environmental Science
0 90 83 67 83 45 90
1 68 89 75 56 73 92
2 58 88 60 90 100 98
ஒரு டிக்சனரியிலிருந்து நமக்கு வேண்டிய column-ஐ மட்டும் எடுத்து டேட்டாஃப்பிரேமை உருவாக்க விரும்பினால் அது பின்வருமாறு அமையும்.
df = pd.DataFrame(d,columns=[‘Tamil’,’English’,’Social’])
print (df)
Tamil English Social
0 90 83 45
1 68 89 73
2 58 88 100
From csv file
ஒரு சி.எஸ்.வி கோப்பில் இருக்கும் தரவுகளை வைத்து டேட்டாஃப்பிரேமை உருவாக்குவதில் பலவிதங்கள் உள்ளன. அவை பின்வருமாறு.
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 | |
df = pd.read_csv("./girls.csv") | |
print (df) | |
df = pd.read_csv("./girls.csv",index_col=['id']) | |
print (df) | |
df = pd.read_csv("./girls.csv",names=['a', 'b', 'c','d','e','f','g']) | |
print (df) | |
df=pd.read_csv("./girls.csv",header=4) | |
print (df) | |
df=pd.read_csv("./girls.csv",skiprows=5,dtype={'40': np.float64}) | |
print (df) | |
df.to_csv('aaa.csv') |
pd.read_csv() எனும் function கொடுக்கப்பட்டுள்ள கோப்பில் இருக்கும் தரவுகளை எடுத்து டேட்டாஃப்பிரேமை உருவாக்கும். அவ்வாறு உருவாகும் போது அதிலுள்ள ஒவ்வொரு row-ம் ஜீரோ முதல் தொடர்ச்சியாக அமைந்த index எண்களால் குறிக்கப்படும். மேலும் முதலாவது row தலைப்பு column ஆக எடுத்துக்கொள்ளப்படும்.
df = pd.read_csv(“./girls.csv”)
print (df)
id fname lname age desig no place
0 1 Nithya Duraisamy 31 Manager 9587412536 Hyderabad
1 2 Nandhini Babu 28 AstManager 9848022338 Delhi
2 3 Madhuri Nathan 51 VP 9848022339 Delhi
3 4 Kavitha Manoharan 45 AVP 9848022330 Hyderabad
4 5 Vijaya Kandasamy 40 AVP 9848022336 Noida
5 6 Aarthi Raj 22 AstManager 9848022335 Chennai
6 7 Lavanya Sankar 23 SrEngineer 9848022334 Chennai
7 8 Meena Baskar 56 VP 9848022333 Hyderabad
8 9 Gayathri Ragu 36 Engineer 9848022333 Chennai
9 10 Kavitha Manoharan 49 AVP 9848022336 Noida
கோப்பில் உள்ள ஏதேனும் ஒரு column-ஐ இன்டெக்ஸ் எண்ணாக அமைக்க விரும்பினால் index_col எனும் பண்பு பயன்படும்.
df = pd.read_csv(“./girls.csv”,index_col=[‘id’])
print (df)
id fname lname age desig no place
1 Nithya Duraisamy 31 Manager 9587412536 Hyderabad
2 Nandhini Babu 28 AstManager 9848022338 Delhi
3 Madhuri Nathan 51 VP 9848022339 Delhi
4 Kavitha Manoharan 45 AVP 9848022330 Hyderabad
5 Vijaya Kandasamy 40 AVP 9848022336 Noida
6 Aarthi Raj 22 AstManager 9848022335 Chennai
7 Lavanya Sankar 23 SrEngineer 9848022334 Chennai
8 Meena Baskar 56 VP 9848022333 Hyderabad
9 Gayathri Ragu 36 Engineer 9848022333 Chennai
10 Kavitha Manoharan 49 AVP 9848022336 Noida
default-ஆக அமையும் முதல் row-வை தலைப்பாக அமைக்காமல், நாம் விரும்பும் பட்டியலைக் கொடுத்து names எனும் பண்பின் மூலம் அதனை தலைப்பாக அமைக்குமாறு செய்யலாம்.
df = pd.read_csv(“./girls.csv”,names=[‘a’, ‘b’, ‘c’,’d’,’e’,’f’,’g’])
print (df)
a b c d e f g
0 id fname lname age desig no place
1 001 Nithya Duraisamy 31 Manager 9587412536 Hyderabad
2 002 Nandhini Babu 28 AstManager 9848022338 Delhi
3 003 Madhuri Nathan 51 VP 9848022339 Delhi
4 004 Kavitha Manoharan 45 AVP 9848022330 Hyderabad
5 005 Vijaya Kandasamy 40 AVP 9848022336 Noida
6 006 Aarthi Raj 22 AstManager 9848022335 Chennai
7 007 Lavanya Sankar 23 SrEngineer 9848022334 Chennai
8 008 Meena Baskar 56 VP 9848022333 Hyderabad
9 009 Gayathri Ragu 36 Engineer 9848022333 Chennai
10 010 Kavitha Manoharan 49 AVP 9848022336 Noida
default-ஆக அமையும் முதல் row-வை விடுத்து, குறிப்பாக ஏதோ ஒரு row-வை தலைப்பு column-ஆக அமைக்க விரும்பினால் header எனும் பண்பு பயன்படும். இவ்வாறு அமைக்கும் போது இந்த row-க்கு அடுத்தடுத்து வரும் rows மட்டுமே டேட்டாஃப்பிரேமின் மதிப்புகளாக அமையும்.
df=pd.read_csv(“./girls.csv”,header=4)
print (df)
004 Kavitha Manoharan 45 AVP 9848022330 Hyderabad
0 5 Vijaya Kandasamy 40 AVP 9848022336 Noida
1 6 Aarthi Raj 22 AstManager 9848022335 Chennai
2 7 Lavanya Sankar 23 SrEngineer 9848022334 Chennai
3 8 Meena Baskar 56 VP 9848022333 Hyderabad
4 9 Gayathri Ragu 36 Engineer 9848022333 Chennai
5 10 Kavitha Manoharan 49 AVP 9848022336 Noida
அதேபோல skiprows எனும் பண்பும் கொடுக்கப்பட்டுள்ள எண்ணிக்கைக்கு ஏற்ப ஆரம்பத்தில் இருக்கும் rows-ஐ தவிர்த்து டேட்டாஃப்பிரேமை உருவாக்கும். dtype எனும் பண்பு குறிப்பிடப்பட்டுள்ள column இன் தரவு வகையை மாற்றப் பயன்படும்.
df=pd.read_csv(“./girls.csv”,skiprows=5,dtype={’40’: np.float64})
print (df)
005 Vijaya Kandasamy 40 AVP 9848022336 Noida
0 6 Aarthi Raj 22.0 AstManager 9848022335 Chennai
1 7 Lavanya Sankar 23.0 SrEngineer 9848022334 Chennai
2 8 Meena Baskar 56.0 VP 9848022333 Hyderabad
3 9 Gayathri Ragu 36.0 Engineer 9848022333 Chennai
4 10 Kavitha Manoharan 49.0 AVP 9848022336 Noida