पायथन पंडों - डेटाफ़्रेम
डेटा फ़्रेम एक दो-आयामी डेटा संरचना है, अर्थात, डेटा को पंक्तियों और स्तंभों में एक सारणीबद्ध फैशन में संरेखित किया गया है।
DataFrame की विशेषताएं
- संभावित स्तंभ विभिन्न प्रकार के होते हैं
- आकार - परस्पर
- लेबल वाली कुल्हाड़ियाँ (पंक्तियाँ और स्तंभ)
- पंक्तियों और स्तंभों पर अंकगणित संचालन कर सकते हैं
संरचना
आइए मान लें कि हम छात्र के डेटा के साथ एक डेटा फ्रेम बना रहे हैं।
आप इसे SQL टेबल या स्प्रैडशीट डेटा प्रतिनिधित्व के रूप में सोच सकते हैं।
pandas.DataFrame
निम्नलिखित कंस्ट्रक्टर का उपयोग करके एक पांडा डेटाफ़्रेम बनाया जा सकता है -
pandas.DataFrame( data, index, columns, dtype, copy)
कंस्ट्रक्टर के पैरामीटर निम्नानुसार हैं -
अनु क्रमांक | पैरामीटर और विवरण |
---|---|
1 | data डेटा विभिन्न रूपों जैसे ndarray, श्रृंखला, मानचित्र, सूचियों, तानाशाही, स्थिरांक और एक अन्य DataFrame लेता है। |
2 | index पंक्ति लेबल के लिए, परिणामी फ्रेम के लिए उपयोग किए जाने वाले सूचकांक वैकल्पिक डिफ़ॉल्ट np.arange (n) है यदि कोई सूचकांक पारित नहीं हुआ है। |
3 | columns कॉलम लेबल के लिए, वैकल्पिक डिफ़ॉल्ट सिंटैक्स है - np.arange (n)। यह केवल तभी सही है जब कोई सूचकांक पारित नहीं किया जाता है। |
4 | dtype प्रत्येक कॉलम का डेटा प्रकार। |
5 | copy यह आदेश (या जो कुछ भी है) का उपयोग डेटा की प्रतिलिपि बनाने के लिए किया जाता है, यदि डिफ़ॉल्ट गलत है। |
DataFrame बनाएं
विभिन्न इनपुट्स का उपयोग करके एक पांडा डेटाफ्रैम बनाया जा सकता है -
- Lists
- dict
- Series
- ऊबड़-खाबड़ नाड़
- एक और डेटाफ़्रेम
इस अध्याय के बाद के खंडों में, हम देखेंगे कि इन सूचनाओं का उपयोग करके एक डाटाफ्रेम कैसे बनाया जाए।
एक खाली डेटाफ़्रेम बनाएँ
एक मूल DataFrame, जिसे बनाया जा सकता है, एक खाली डेटाफ़्रेम है।
उदाहरण
#import the pandas library and aliasing as pd
import pandas as pd
df = pd.DataFrame()
print df
आईटी इस output इस प्रकार है -
Empty DataFrame
Columns: []
Index: []
सूचियों से एक DataFrame बनाएँ
डेटाफ्रेम एक सूची या सूचियों की सूची का उपयोग करके बनाया जा सकता है।
उदाहरण 1
import pandas as pd
data = [1,2,3,4,5]
df = pd.DataFrame(data)
print df
आईटी इस output इस प्रकार है -
0
0 1
1 2
2 3
3 4
4 5
उदाहरण 2
import pandas as pd
data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'])
print df
आईटी इस output इस प्रकार है -
Name Age
0 Alex 10
1 Bob 12
2 Clarke 13
उदाहरण 3
import pandas as pd
data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'],dtype=float)
print df
आईटी इस output इस प्रकार है -
Name Age
0 Alex 10.0
1 Bob 12.0
2 Clarke 13.0
Note - निरीक्षण करें, dtype पैरामीटर एज कॉलम के प्रकार को फ्लोटिंग पॉइंट में बदलता है।
Ndarrays / सूचियों के Dict से एक DataFrame बनाएँ
सब ndarraysसमान लंबाई का होना चाहिए। यदि इंडेक्स पारित किया जाता है, तो इंडेक्स की लंबाई सरणियों की लंबाई के बराबर होनी चाहिए।
यदि कोई सूचकांक पारित नहीं हुआ है, तो डिफ़ॉल्ट रूप से, सूचकांक सीमा (एन) होगी, जहां n सरणी की लंबाई है।
उदाहरण 1
import pandas as pd
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df = pd.DataFrame(data)
print df
आईटी इस output इस प्रकार है -
Age Name
0 28 Tom
1 34 Jack
2 29 Steve
3 42 Ricky
Note- 0,1,2,3 मानों को ध्यान से देखें। वे फ़ंक्शन रेंज (एन) का उपयोग करके प्रत्येक को सौंपे गए डिफ़ॉल्ट सूचकांक हैं।
उदाहरण 2
आइए अब सरणियों का उपयोग करके एक अनुक्रमित DataFrame बनाएं।
import pandas as pd
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df = pd.DataFrame(data, index=['rank1','rank2','rank3','rank4'])
print df
आईटी इस output इस प्रकार है -
Age Name
rank1 28 Tom
rank2 34 Jack
rank3 29 Steve
rank4 42 Ricky
Note - निरीक्षण करें, index पैरामीटर प्रत्येक पंक्ति को एक सूचकांक प्रदान करता है।
डायट की सूची से एक डेटाफ़्रेम बनाएँ
डेटाफ़्रेम बनाने के लिए शब्दकोशों की सूची इनपुट डेटा के रूप में पारित की जा सकती है। डिक्शनरी कीज़ डिफ़ॉल्ट रूप से कॉलम नामों के रूप में ली गई हैं।
उदाहरण 1
निम्नलिखित उदाहरण दिखाता है कि शब्दकोशों की सूची को पारित करके एक डेटाफ़्रेम कैसे बनाया जाए।
import pandas as pd
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
print df
आईटी इस output इस प्रकार है -
a b c
0 1 2 NaN
1 5 10 20.0
Note - गुमशुदा क्षेत्रों में, NaN (संख्या नहीं) का निरीक्षण किया जाता है।
उदाहरण 2
निम्न उदाहरण दिखाता है कि शब्दकोशों और पंक्ति सूचकांकों की सूची पास करके डेटाफ़्रेम कैसे बनाया जाए।
import pandas as pd
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data, index=['first', 'second'])
print df
आईटी इस output इस प्रकार है -
a b c
first 1 2 NaN
second 5 10 20.0
उदाहरण 3
निम्न उदाहरण दिखाता है कि शब्दकोशों, पंक्ति सूचकांकों, और स्तंभ सूचकांकों की सूची के साथ एक DataFrame कैसे बनाएं।
import pandas as pd
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
#With two column indices, values same as dictionary keys
df1 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b'])
#With two column indices with one index with other name
df2 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b1'])
print df1
print df2
आईटी इस output इस प्रकार है -
#df1 output
a b
first 1 2
second 5 10
#df2 output
a b1
first 1 NaN
second 5 NaN
Note- निरीक्षण करें, df2 DataFrame शब्दकोष कुंजी के अलावा एक कॉलम इंडेक्स के साथ बनाया गया है; इस प्रकार, NaN के स्थान पर जोड़ा गया। जबकि, df1 शब्दकोष कुंजियों के समान स्तंभ सूचकांकों के साथ बनाया गया है, इसलिए NaN का जोड़ा गया।
Dict of Series से एक DataFrame बनाएं
डेटाफ़्रेम बनाने के लिए डिक्शनरी ऑफ़ सीरीज़ को पारित किया जा सकता है। परिणामी सूचकांक उत्तीर्ण सभी श्रृंखला सूचकांक का संघ है।
उदाहरण
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print df
आईटी इस output इस प्रकार है -
one two
a 1.0 1
b 2.0 2
c 3.0 3
d NaN 4
Note - निरीक्षण करें, श्रृंखला एक के लिए, कोई लेबल नहीं है ‘d’ पारित किया है, लेकिन परिणाम में, के लिए d लेबल, NaN को NaN के साथ जोड़ा जाता है।
अब हम समझते हैं column selection, addition, तथा deletion उदाहरणों के माध्यम से।
कॉलम चयन
हम इसे DataFrame के एक कॉलम का चयन करके समझेंगे।
उदाहरण
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print df ['one']
आईटी इस output इस प्रकार है -
a 1.0
b 2.0
c 3.0
d NaN
Name: one, dtype: float64
स्तंभ का जोड़
हम मौजूदा डेटा फ्रेम में एक नया कॉलम जोड़कर इसे समझेंगे।
उदाहरण
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
# Adding a new column to an existing DataFrame object with column label by passing new series
print ("Adding a new column by passing as Series:")
df['three']=pd.Series([10,20,30],index=['a','b','c'])
print df
print ("Adding a new column using the existing columns in DataFrame:")
df['four']=df['one']+df['three']
print df
आईटी इस output इस प्रकार है -
Adding a new column by passing as Series:
one two three
a 1.0 1 10.0
b 2.0 2 20.0
c 3.0 3 30.0
d NaN 4 NaN
Adding a new column using the existing columns in DataFrame:
one two three four
a 1.0 1 10.0 11.0
b 2.0 2 20.0 22.0
c 3.0 3 30.0 33.0
d NaN 4 NaN NaN
स्तंभन दोष
कॉलम हटाए या पॉप किए जा सकते हैं; आइए हम एक उदाहरण लेते हैं कि कैसे समझें।
उदाहरण
# Using the previous DataFrame, we will delete a column
# using del function
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']),
'three' : pd.Series([10,20,30], index=['a','b','c'])}
df = pd.DataFrame(d)
print ("Our dataframe is:")
print df
# using del function
print ("Deleting the first column using DEL function:")
del df['one']
print df
# using pop function
print ("Deleting another column using POP function:")
df.pop('two')
print df
आईटी इस output इस प्रकार है -
Our dataframe is:
one three two
a 1.0 10.0 1
b 2.0 20.0 2
c 3.0 30.0 3
d NaN NaN 4
Deleting the first column using DEL function:
three two
a 10.0 1
b 20.0 2
c 30.0 3
d NaN 4
Deleting another column using POP function:
three
a 10.0
b 20.0
c 30.0
d NaN
पंक्ति चयन, परिवर्धन और विलोपन
अब हम उदाहरणों के माध्यम से पंक्ति चयन, जोड़ और विलोपन को समझेंगे। आइए हम चयन की अवधारणा से शुरू करते हैं।
लेबल द्वारा चयन
पंक्तियों को पंक्ति लेबल पास करके चयनित किया जा सकता है a loc समारोह।
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print df.loc['b']
आईटी इस output इस प्रकार है -
one 2.0
two 2.0
Name: b, dtype: float64
परिणाम DataFrame के स्तंभ नामों के रूप में लेबल के साथ एक श्रृंखला है। और, श्रृंखला का नाम लेबल है जिसके साथ इसे पुनर्प्राप्त किया जाता है।
पूर्णांक स्थान द्वारा चयन
पूर्णांक स्थान को पास करके पंक्तियों का चयन किया जा सकता है iloc समारोह।
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print df.iloc[2]
आईटी इस output इस प्रकार है -
one 3.0
two 3.0
Name: c, dtype: float64
स्लाइस पंक्तियाँ
एकाधिक पंक्तियों को ':' ऑपरेटर के उपयोग से चुना जा सकता है।
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print df[2:4]
आईटी इस output इस प्रकार है -
one two
c 3.0 3
d NaN 4
पंक्तियों का जोड़
का उपयोग कर एक DataFrame में नई पंक्तियाँ जोड़ें appendसमारोह। यह फ़ंक्शन अंत में पंक्तियों को जोड़ देगा।
import pandas as pd
df = pd.DataFrame([[1, 2], [3, 4]], columns = ['a','b'])
df2 = pd.DataFrame([[5, 6], [7, 8]], columns = ['a','b'])
df = df.append(df2)
print df
आईटी इस output इस प्रकार है -
a b
0 1 2
1 3 4
0 5 6
1 7 8
पंक्तियों का विलोपन
डेटाफ्रेम से पंक्तियों को हटाने या छोड़ने के लिए इंडेक्स लेबल का उपयोग करें। यदि लेबल डुप्लिकेट है, तो कई पंक्तियों को छोड़ दिया जाएगा।
यदि आप उपर्युक्त उदाहरण में निरीक्षण करते हैं, तो लेबल डुप्लिकेट हैं। आइए हम एक लेबल ड्रॉप करते हैं और देखेंगे कि कितनी पंक्तियाँ गिरेंगी।
import pandas as pd
df = pd.DataFrame([[1, 2], [3, 4]], columns = ['a','b'])
df2 = pd.DataFrame([[5, 6], [7, 8]], columns = ['a','b'])
df = df.append(df2)
# Drop rows with label 0
df = df.drop(0)
print df
आईटी इस output इस प्रकार है -
a b
1 3 4
1 7 8
उपरोक्त उदाहरण में, दो पंक्तियों को छोड़ दिया गया क्योंकि उन दोनों में समान लेबल 0 है।