पायथन पंडों - डेटाफ़्रेम

डेटा फ़्रेम एक दो-आयामी डेटा संरचना है, अर्थात, डेटा को पंक्तियों और स्तंभों में एक सारणीबद्ध फैशन में संरेखित किया गया है।

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 है।