पायथन पंडों - अनुक्रमण और डेटा का चयन
इस अध्याय में, हम चर्चा करेंगे कि कैसे तिथि को स्लाइस और पासा जाए और आम तौर पर पांडा वस्तु का सबसेट मिलता है।
अजगर और NumPy अनुक्रमण ऑपरेटर "[]" और विशेषता ऑपरेटर "।" उपयोग मामलों की एक विस्तृत श्रृंखला में पंडों के डेटा संरचनाओं को त्वरित और आसान पहुंच प्रदान करें। हालाँकि, एक्सेस किए जाने वाले डेटा का प्रकार पहले से ज्ञात नहीं है, सीधे मानक ऑपरेटरों के उपयोग से कुछ अनुकूलन सीमाएँ हैं। उत्पादन कोड के लिए, हम अनुशंसा करते हैं कि आप इस अध्याय में बताए गए अनुकूलित पांडा डेटा एक्सेस विधियों का लाभ उठाएं।
पंडों अब तीन प्रकार के मल्टी-एक्सिस इंडेक्सिंग का समर्थन करते हैं; तीन प्रकार निम्न तालिका में उल्लिखित हैं -
अनु क्रमांक | अनुक्रमण और विवरण |
---|---|
1 | .loc() लेबल आधारित है |
2 | .iloc() पूर्णांक आधारित |
3 | .ix() दोनों लेबल और पूर्णांक आधारित है |
.loc ()
पंडों ने विशुद्ध रूप से होने के लिए विभिन्न तरीके प्रदान किए label based indexing। स्लाइस करते समय, स्टार्ट बाउंड भी शामिल होता है। इंटेगर वैध लेबल हैं, लेकिन वे लेबल को संदर्भित करते हैं न कि स्थिति को।
.loc() कई पहुंच विधि हैं जैसे -
- एक एकल अदिश लेबल
- लेबल की एक सूची
- एक स्लाइस वस्तु
- एक बूलियन सरणी
loc',' द्वारा अलग किए गए दो एकल / सूची / रेंज ऑपरेटर लेता है। पहला एक पंक्ति को इंगित करता है और दूसरा कॉलम इंगित करता है।
उदाहरण 1
#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4),
index = ['a','b','c','d','e','f','g','h'], columns = ['A', 'B', 'C', 'D'])
#select all rows for a specific column
print df.loc[:,'A']
आईटी इस output इस प्रकार है -
a 0.391548
b -0.070649
c -0.317212
d -2.162406
e 2.202797
f 0.613709
g 1.050559
h 1.122680
Name: A, dtype: float64
उदाहरण 2
# import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4),
index = ['a','b','c','d','e','f','g','h'], columns = ['A', 'B', 'C', 'D'])
# Select all rows for multiple columns, say list[]
print df.loc[:,['A','C']]
आईटी इस output इस प्रकार है -
A C
a 0.391548 0.745623
b -0.070649 1.620406
c -0.317212 1.448365
d -2.162406 -0.873557
e 2.202797 0.528067
f 0.613709 0.286414
g 1.050559 0.216526
h 1.122680 -1.621420
उदाहरण 3
# import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4),
index = ['a','b','c','d','e','f','g','h'], columns = ['A', 'B', 'C', 'D'])
# Select few rows for multiple columns, say list[]
print df.loc[['a','b','f','h'],['A','C']]
आईटी इस output इस प्रकार है -
A C
a 0.391548 0.745623
b -0.070649 1.620406
f 0.613709 0.286414
h 1.122680 -1.621420
उदाहरण 4
# import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4),
index = ['a','b','c','d','e','f','g','h'], columns = ['A', 'B', 'C', 'D'])
# Select range of rows for all columns
print df.loc['a':'h']
आईटी इस output इस प्रकार है -
A B C D
a 0.391548 -0.224297 0.745623 0.054301
b -0.070649 -0.880130 1.620406 1.419743
c -0.317212 -1.929698 1.448365 0.616899
d -2.162406 0.614256 -0.873557 1.093958
e 2.202797 -2.315915 0.528067 0.612482
f 0.613709 -0.157674 0.286414 -0.500517
g 1.050559 -2.272099 0.216526 0.928449
h 1.122680 0.324368 -1.621420 -0.741470
उदाहरण 5
# import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4),
index = ['a','b','c','d','e','f','g','h'], columns = ['A', 'B', 'C', 'D'])
# for getting values with a boolean array
print df.loc['a']>0
आईटी इस output इस प्रकार है -
A False
B True
C False
D False
Name: a, dtype: bool
.iloc ()
पंडों को विशुद्ध रूप से पूर्णांक आधारित अनुक्रमण प्राप्त करने के लिए विभिन्न तरीके प्रदान करते हैं। अजगर और सुन्न की तरह, ये हैं0-based अनुक्रमण।
विभिन्न पहुँच विधियाँ निम्नानुसार हैं -
- पूर्णांक
- पूर्णांकों की एक सूची
- मूल्यों की एक श्रृंखला
उदाहरण 1
# import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4), columns = ['A', 'B', 'C', 'D'])
# select all rows for a specific column
print df.iloc[:4]
आईटी इस output इस प्रकार है -
A B C D
0 0.699435 0.256239 -1.270702 -0.645195
1 -0.685354 0.890791 -0.813012 0.631615
2 -0.783192 -0.531378 0.025070 0.230806
3 0.539042 -1.284314 0.826977 -0.026251
उदाहरण 2
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4), columns = ['A', 'B', 'C', 'D'])
# Integer slicing
print df.iloc[:4]
print df.iloc[1:5, 2:4]
आईटी इस output इस प्रकार है -
A B C D
0 0.699435 0.256239 -1.270702 -0.645195
1 -0.685354 0.890791 -0.813012 0.631615
2 -0.783192 -0.531378 0.025070 0.230806
3 0.539042 -1.284314 0.826977 -0.026251
C D
1 -0.813012 0.631615
2 0.025070 0.230806
3 0.826977 -0.026251
4 1.423332 1.130568
उदाहरण 3
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4), columns = ['A', 'B', 'C', 'D'])
# Slicing through list of values
print df.iloc[[1, 3, 5], [1, 3]]
print df.iloc[1:3, :]
print df.iloc[:,1:3]
आईटी इस output इस प्रकार है -
B D
1 0.890791 0.631615
3 -1.284314 -0.026251
5 -0.512888 -0.518930
A B C D
1 -0.685354 0.890791 -0.813012 0.631615
2 -0.783192 -0.531378 0.025070 0.230806
B C
0 0.256239 -1.270702
1 0.890791 -0.813012
2 -0.531378 0.025070
3 -1.284314 0.826977
4 -0.460729 1.423332
5 -0.512888 0.581409
6 -1.204853 0.098060
7 -0.947857 0.641358
.ix ()
शुद्ध लेबल आधारित और पूर्णांक आधारित होने के अलावा, पंडास .ix () ऑपरेटर का उपयोग करके चयनों के लिए एक संकर विधि प्रदान करता है।
उदाहरण 1
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4), columns = ['A', 'B', 'C', 'D'])
# Integer slicing
print df.ix[:4]
आईटी इस output इस प्रकार है -
A B C D
0 0.699435 0.256239 -1.270702 -0.645195
1 -0.685354 0.890791 -0.813012 0.631615
2 -0.783192 -0.531378 0.025070 0.230806
3 0.539042 -1.284314 0.826977 -0.026251
उदाहरण 2
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4), columns = ['A', 'B', 'C', 'D'])
# Index slicing
print df.ix[:,'A']
आईटी इस output इस प्रकार है -
0 0.699435
1 -0.685354
2 -0.783192
3 0.539042
4 -1.044209
5 -1.415411
6 1.062095
7 0.994204
Name: A, dtype: float64
सूचनाओं का उपयोग
मल्टी-एक्सिस इंडेक्सिंग के साथ पंडों ऑब्जेक्ट से मान प्राप्त करना निम्नलिखित नोटेशन का उपयोग करता है -
वस्तु | indexers | वापसी प्रकार |
---|---|---|
श्रृंखला | s.loc [इंडेक्सर] | स्केलर मूल्य |
डेटा ढांचा | df.loc [ROW_INDEX, col_index] | श्रृंखला वस्तु |
पैनल | p.loc [item_index, major_index, minor_index] | p.loc [item_index, major_index, minor_index] |
Note − .iloc() & .ix() एक ही अनुक्रमण विकल्प और रिटर्न वैल्यू लागू करता है।
आइए अब देखते हैं कि DataFrame ऑब्जेक्ट पर प्रत्येक ऑपरेशन कैसे किया जा सकता है। हम मूल अनुक्रमण संचालक '[]' का उपयोग करेंगे -
उदाहरण 1
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4), columns = ['A', 'B', 'C', 'D'])
print df['A']
आईटी इस output इस प्रकार है -
0 -0.478893
1 0.391931
2 0.336825
3 -1.055102
4 -0.165218
5 -0.328641
6 0.567721
7 -0.759399
Name: A, dtype: float64
Note - हम उन कॉलम को चुनने के लिए मूल्यों की सूची [] पास कर सकते हैं।
उदाहरण 2
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4), columns = ['A', 'B', 'C', 'D'])
print df[['A','B']]
आईटी इस output इस प्रकार है -
A B
0 -0.478893 -0.606311
1 0.391931 -0.949025
2 0.336825 0.093717
3 -1.055102 -0.012944
4 -0.165218 1.550310
5 -0.328641 -0.226363
6 0.567721 -0.312585
7 -0.759399 -0.372696
उदाहरण 3
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4), columns = ['A', 'B', 'C', 'D'])
print df[2:2]
आईटी इस output इस प्रकार है -
Columns: [A, B, C, D]
Index: []
पहुंच प्रदान करें
कॉलम को ऑपरेटर ऑपरेटर '' का उपयोग करके चुना जा सकता है।
उदाहरण
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(8, 4), columns = ['A', 'B', 'C', 'D'])
print df.A
आईटी इस output इस प्रकार है -
0 -0.478893
1 0.391931
2 0.336825
3 -1.055102
4 -0.165218
5 -0.328641
6 0.567721
7 -0.759399
Name: A, dtype: float64