Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में regexp और डेटा प्रकारों का उपयोग करके एकाधिक DataFrame कॉलम चुनना


DataFrame की तुलना स्प्रेडशीट या डेटाबेस में रखे गए डेटा सेट से की जा सकती है जिसमें पंक्तियाँ और स्तंभ होते हैं। DataFrame एक 2D ऑब्जेक्ट है।

Ok, 1D और 2D शब्दावली से भ्रमित?

1D (Series) और 2D (DataFrame) के बीच प्रमुख अंतर किसी एक डेटा पॉइंट पर पहुंचने के लिए आवश्यक सूचना बिंदुओं की संख्या है। यदि आप Series का उदाहरण लेते हैं, और एक मान निकालना चाहते हैं, तो आपको केवल एक संदर्भ बिंदु की आवश्यकता होती है यानी पंक्ति इंडेक्स।

तुलना में एक टेबल (DataFrame) के लिए, एक संदर्भ बिंदु डेटा पॉइंट तक पहुंचने के लिए पर्याप्त नहीं है, आपको पंक्ति मान और स्तंभ मान के प्रतिच्छेदन की आवश्यकता होती है।

नीचे दिया गया स्निपेट दिखाता है कि CSV फ़ाइल से पांडा DataFrame कैसे बनाएं।

.read_csv() विधि डिफ़ॉल्ट रूप से एक DataFrame बनाती है। आप kaggle.com से movies डेटासेट डाउनलोड कर सकते हैं movies खोजकर।

\"\"\"Script : Create a Pandas DataFrame from a csv file.\"\"\" import pandas as pd movies_dataset pd read_csv "https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv") # 1 print the type of object type(movies_dataset) # 2 print the top 5 records in a tabular format movies_dataset head(5)



budget
id
original_language
original_title
popularity
release_date
revenue
runtime
status
title
vote_average
vote_count
0
237000000
19995
en
Avatar
150.437577
10/12/2009
2787965087
162.0
Released
Avatar
7.2
11800
1
300000000
285
en
Pirates of the Caribbean: At World's End
139.082615
19/05/2007
961000000
169.0
Released
Pirates of the Caribbean: At World's End
6.9
4500
2
245000000
206647
en
Spectre
107.376788
26/10/2015
880674609
148.0
Released
Spectre
6.3
4466
3
250000000
49026
en
The Dark Knight Rises
112.312950
16/07/2012
1084939099
165.0
Released
The Dark Knight Rises
7.6
9106
4
260000000
49529
en
John Carter
43.926995
7/03/2012
284139100
132.0
Released
John Carter
6.1
2124

2. एकल DataFrame कॉलम चुनना। इंडेक्स ऑपरेटर को कॉलम नाम स्ट्रिंग या लिस्ट के रूप में पास करने पर कॉलम मान या तो Series या DataFrame के रूप में लौटाएगा।

यदि हम कॉलम नाम के साथ एक स्ट्रिंग पास करते हैं, तो आपको Series आउटपुट के रूप में मिलेगा, हालांकि केवल एक कॉलम नाम के साथ लिस्ट पास करने पर DataFrame लौटेगा। हम इसे उदाहरणों के साथ देखेंगे।

# डेटा को series के रूप में चुनें movies_dataset["title"]


0 Avatar 1 Pirates of the Caribbean: At World's End 2 Spectre 3 The Dark Knight Rises 4 John Carter ... 4798 El Mariachi 4799 Newlyweds 4800 Signed, Sealed, Delivered 4801 Shanghai Calling 4802 My Date with Drew Name: title, Length: 4803, dtype: object


# डेटा को DataFrame के रूप में चुनें movies_dataset[["title"]]



title
0
Avatar
1
Pirates of the Caribbean: At World's End
2
Spectre
3
The Dark Knight Rises
4
John Carter
...
...
4798
El Mariachi
4799
Newlyweds
4800
Signed, Sealed, Delivered
4801
Shanghai Calling
4802
My Date with Drew

3. एकाधिक DataFrame कॉलम चुनना।

# एकाधिक DataFrame कॉलम movies_dataset[["title","runtime","vote_average","vote_count"]]



title
runtime
vote_average
vote_count
0
Avatar
162.0
7.2
11800
1
Pirates of the Caribbean: At World's End
169.0
6.9
4500
2
Spectre
148.0
6.3
4466
3
The Dark Knight Rises
165.0
7.6
9106
4
John Carter
132.0
6.1
2124
...
...
...
...
...
4798
El Mariachi
81.0
6.6
238
4799
Newlyweds
85.0
5.9
5
4800
Signed, Sealed, Delivered
120.0
7.0
6
4801
Shanghai Calling
98.0
5.7
7
4802
My Date with Drew
90.0
6.3
16

कोड पठनीयता समस्याओं से बचने के लिए, मैं हमेशा कॉलम नामों को लिस्ट के रूप में रखने के लिए एक वेरिएबल परिभाषित करने की सलाह देता हूं और कोड में एकाधिक कॉलम नाम निर्दिष्ट करने के बजाय कॉलम नाम का उपयोग करें।

columns=["title","runtime","vote_average","vote_count"]movies_dataset[columns]



title
runtime
vote_average
vote_count
0
Avatar
162.0
7.2
11800
1
Pirates of the Caribbean: At World's End
169.0
6.9
4500
2
Spectre
148.0
6.3
4466
3
The Dark Knight Rises
165.0
7.6
9106
4
John Carter
132.0
6.1
2124
...
...
...
...
...
4798
El Mariachi
81.0
6.6
238
4799
Newlyweds
85.0
5.9
5
4800
Signed, Sealed, Delivered
120.0
7.0
6
4801
Shanghai Calling
98.0
5.7
7
4802
My Date with Drew
90.0
6.3
16

4. कॉलम नामों द्वारा DataFrame कॉलम।

.filter() विधि

यह विधि स्ट्रिंग का उपयोग करके कॉलम खोजने और चुनने के लिए काफी आसान है। यह SQL में like %% पैरामीटर की तरह ही काम करता है। याद रखें, .filter() विधि केवल कॉलम नामों का निरीक्षण करके कॉलम चुनती है न कि वास्तविक डेटा मान।

.filter() विधि चयन ऑपरेशन के लिए उपयोग किए जा सकने वाले तीन पैरामीटर्स का समर्थन करती है:

  • .like
  • .regex
  • .items
like पैरामीटर एक स्ट्रिंग लेता है और उन कॉलम नामों को ढूंढने का प्रयास करता है जिनमें कॉलम नाम में कहीं यह स्ट्रिंग होती है।


# उन कॉलम को चुनें जिनका कॉलम नाम "title" जैसा है movies_dataset.filter(like="title").head(5)



original_title
title
0
Avatar
Avatar
1
Pirates of the Caribbean: At World's End
Pirates of the Caribbean: At World's End
2
Spectre
Spectre
3
The Dark Knight Rises
The Dark Knight Rises
4
John Carter
John Carter

.regex - रेगुलर एक्सप्रेशन का उपयोग करके कॉलम नाम चुनने का अधिक लचीला तरीका

# उन कॉलम को चुनें जो "t" से समाप्त होते हैं movies_dataset.filter(regex=t).head()



budget
vote_count
0
237000000
11800
1
300000000
4500
2
245000000
4466
3
250000000
9106
4
260000000
2124

.items - इंडेक्स ऑपरेटर को कॉलम नाम स्ट्रिंग या लिस्ट के रूप में पास करने का डुप्लिकेट, सिवाय इसके कि KeyError नहीं उठाया जाएगा

डेटा प्रकारों द्वारा DataFrame कॉलम।

.select_dtypes विधि कॉलम डेटा प्रकारों पर काम करती है यदि आप केवल कुछ डेटा प्रकारों को फ़िल्टर और उपयोग करने में रुचि रखते हैं।

फिर से, .select_dtypes विधि अपने include या exclude पैरामीटर्स में एकाधिक डेटा प्रकार (लिस्ट द्वारा) या एकल डेटा प्रकार (स्ट्रिंग के रूप में) स्वीकार करती है और केवल उन दिए गए डेटा प्रकारों वाले कॉलम के साथ एक DataFrame लौटाती है।

.include पैरामीटर निर्दिष्ट डेटा प्रकार/प्रकारों वाले कॉलम को शामिल करता है और .exclude निर्दिष्ट डेटा प्रकार वाले कॉलम को अनदेखा करेगा।

आइए पहले उन डेटा प्रकारों और उन डेटा प्रकारों वाले कॉलम की संख्या देखें

movies_dataset=pd.read_csv("https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv" movies_dataset.dtypes.value_counts()


object 5 int64 4 float64 3 dtype: int64


a) पांडा DataFrames से पूर्णांक डेटा प्रकार फ़िल्टर करना।

movies_dataset select_dtypes(include="int")head(3)


2
1
0


b). पांडा DataFrames से पूर्णांक और फ्लोट डेटा प्रकार चुनें।

आप नीचे दिखाए अनुसार एकाधिक डेटा प्रकारों को लिस्ट के रूप में निर्दिष्ट कर सकते हैं।

movies_dataset select_dtypes(include=["int64","float"]).head(3)



budget
id
popularity
revenue
runtime
vote_average
vote_count
0
237000000
19995
150.437577
2787965087
162.0
7.2
11800
1
300000000
285
139.082615
961000000
169.0
6.9
4500
2
245000000
206647
107.376788
880674609
148.0
6.3
4466

c) ठीक है, यदि आप केवल सभी संख्यात्मक डेटा प्रकार चाहते हैं, तो बस number निर्दिष्ट करें

movies_dataset select_dtypes(include=["number"]).head(3)



budget
id
popularity
revenue
runtime
vote_average
vote_count
0
237000000
19995
150.437577
2787965087
162.0
7.2
11800
1
300000000
285
139.082615
961000000
169.0
6.9
4500
2
245000000
206647
107.376788
880674609
148.0
6.3
4466

d). पांडा DataFrames से कुछ डेटा प्रकारों को बाहर करें।


movies_dataset select_dtypes(exclude=["object"]).head(3)



budget
id
popularity
revenue
runtime
vote_average
vote_count
0
237000000
19995
150.437577
2787965087
162.0
7.2
11800
1
300000000
285
139.082615
961000000
169.0
6.9
4500
2
245000000
206647
107.376788
880674609
148.0
6.3
4466


नोट:- स्ट्रिंग डेटा प्रकार से निपटने के लिए नहीं है, पांडा उन्हें ऑब्जेक्ट में बदल देता है, इसलिए यदि आपको अपवाद "TypeError: data type "string" not understood" का सामना करना पड़ता है, तो स्ट्रिंग के बजाय Object का उपयोग करें।


  1. पायथन - पैंडास DataFrame से एकाधिक कॉलम का चयन कैसे करें पायथन - पैंडास DataFrame से एकाधिक कॉलम का चयन कैसे करें

    मान लीजिए हमारी CSV फ़ाइल की सामग्री Microsoft Excel में निम्नलिखित है:सबसे पहले, CSV फ़ाइल से डेटा पैंडास DataFrame में लोड करें:dataFrame = pd.read_csv(C:\\Users\\amit_\\Desktop\\SalesData.csv)एकाधिक कॉलम रिकॉर्ड का चयन करने के लिए वर्गाकार ब्रैकेट का उपयोग करें। ब्रैकेट में कॉलम का उल्लेख करें और

  1. Microsoft Access में कॉलम को फ्रीज और अनफ्रीज कैसे करें Microsoft Access में कॉलम को फ्रीज और अनफ्रीज कैसे करें

    Microsoft Access में फ्रीज नामक एक फीचर है जो उपयोगकर्ता को डेटाशीट के एक क्षेत्र को दृश्यमान रखते हुए दूसरे क्षेत्र में स्क्रॉल करने की अनुमति देता है। आप अपनी टेबल, क्वेरी, फॉर्म, व्यू या स्टोर्ड प्रोसीजर में एक या अधिक फील्ड को फ्रीज करने के लिए इस फीचर का उपयोग कर सकते हैं। फ्रीज किया गया फील्ड

  1. पायथन में ट्किंटर का उपयोग करके डायरेक्टरी चुनें और स्थान स्टोर करें? पायथन में ट्किंटर का उपयोग करके डायरेक्टरी चुनें और स्थान स्टोर करें?

    हम डायलॉग बॉक्स से परिचित हैं और कई प्रकार के एप्लिकेशन में उनके साथ इंटरैक्ट किया है। ऐसे प्रकार के डायलॉग्स उस एप्लिकेशन को बनाने में उपयोगी होते हैं जहां यूज़र इंटरैक्शन एक प्रमुख आवश्यकता है। हम यूज़र से विभिन्न प्रकार की फ़ाइलें चुनने के लिए डायलॉग बॉक्स का उपयोग कर सकते हैं और फिर कुछ ऑपरेशन