डेटाफ़्रेम की तुलना स्प्रेडशीट में रखे गए डेटा सेट या पंक्तियों और स्तंभों वाले डेटाबेस से की जा सकती है। DataFrame एक 2D ऑब्जेक्ट है।
ठीक है, 1D और 2D शब्दावली से भ्रमित हैं?
1D (श्रृंखला) और 2D (डेटाफ़्रेम) के बीच मुख्य अंतर जानकारी के बिंदुओं की संख्या है जो आपको किसी एकल डेटा बिंदु पर पहुंचने के लिए आवश्यक है। यदि आप एक श्रृंखला का उदाहरण लेते हैं, और एक मान निकालना चाहते हैं, तो आपको केवल एक संदर्भ बिंदु यानी पंक्ति अनुक्रमणिका की आवश्यकता है।
किसी तालिका (डेटाफ़्रेम) की तुलना में, डेटा बिंदु तक पहुंचने के लिए संदर्भ का एक बिंदु पर्याप्त नहीं है, आपको पंक्ति मान और स्तंभ मान के प्रतिच्छेदन की आवश्यकता है।
नीचे दिए गए स्निपेट से पता चलता है कि csv फ़ाइल से पांडा डेटाफ़्रेम कैसे बनाया जाता है।
.read_csv() विधि डिफ़ॉल्ट रूप से डेटाफ़्रेम बनाती है। आप मूवी खोज कर kaggle.com से मूवी डेटासेट डाउनलोड कर सकते हैं।
"""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)
वें> <वें>बजट वें> <वें>आईडी वें> <थ>मूल_भाषा वें> <वें>मूल_शीर्षक वें> <वें>लोकप्रियता वें> <वें>रिलीज_तारीख वें> <वें>राजस्व वें> <वें>रनटाइम वें> <वें>स्थिति वें> <वें>शीर्षक वें> <वें>वोट_औसत वें> <वें>वोट_गिनती वें> | |||||||
---|---|---|---|---|---|---|---|
0 वें> <टीडी>23700000 <टीडी>19995 <टीडी>एन | अवतार | <टीडी>150.437577 10/12/2009 | 2787965087 | <टीडी>162.0 विमोचित | अवतार | <टीडी>7.2 ||
1 वें> <टीडी>300000000 <टीडी>285 <टीडी>एन | पाइरेट्स ऑफ द कैरेबियन:एट वर्ल्ड्स एंड | 139.082615 | 19/05/2007 | 961000000 | 169.0 | विमोचित | पाइरेट्स ऑफ द कैरेबियन:एट वर्ल्ड्स एंड | <टीडी>6.9
2 वें> <टीडी>245000000 | 206647 | <टीडी>एन स्पेक्टर | 107.376788 | 26/10/2015 | 880674609 | <टीडी>148.0 विमोचित | स्पेक्टर | <टीडी>6.3
3 वें> <टीडी>250000000 <टीडी>49026 <टीडी>एन | द डार्क नाइट राइज़ | 112.312950 | 16/07/2012 | 1084939099 | 165.0 | विमोचित | द डार्क नाइट राइज़ | <टीडी>7.6
4 वें> <टीडी>260000000 <टीडी>49529 <टीडी>एन | जॉन कार्टर | 43.926995 | 7/03/2012 | 284139100 | <टीडी>132.0 विमोचित | जॉन कार्टर | <टीडी>6.1
2. एकल डेटाफ़्रेम कॉलम का चयन करना। कॉलम नाम को एक स्ट्रिंग या सूची के रूप में इंडेक्स ऑपरेटर को पास करने से कॉलम मान या तो सीरीज़ या डेटाफ़्रेम के रूप में वापस आ जाएगा।
यदि हम कॉलम नाम के साथ एक स्ट्रिंग में पास करते हैं, तो आपको आउटपुट के रूप में एक श्रृंखला मिलेगी, हालांकि, केवल एक कॉलम नाम के साथ सूची को पास करने से डेटाफ़्रेम वापस आ जाएगा। हम इसे उदाहरणों के साथ देखेंगे।
# select the data as 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
# select the data as DataFrame movies_dataset[["title"]]. के रूप में चुनें
वें> <वें>शीर्षक वें> | |
---|---|
0 वें> | अवतार |
1 वें> | पाइरेट्स ऑफ द कैरेबियन:एट वर्ल्ड्स एंड |
2 वें> | स्पेक्टर |
3 वें> | द डार्क नाइट राइज़ |
4 वें> | जॉन कार्टर |
... वें> <टीडी>... | |
4798 वें> | एल मारियाची |
4799 वें> | नववरवधू |
4800 वें> | हस्ताक्षरित, मुहरबंद, वितरित |
4801 वें> | शंघाई कॉलिंग |
4802 वें> | ड्रू के साथ मेरी तिथि |
3. एक से अधिक डेटाफ़्रेम कॉलम का चयन करना।
# Multiple DataFrame columns movies_dataset[["title""runtime","vote_average","vote_count"]]
वें> <वें>शीर्षक वें> <वें>रनटाइम वें> <वें>वोट_औसत वें> <वें>वोट_गिनती वें> | ||
---|---|---|
0 वें> | अवतार | <टीडी>162.0 |
1 वें> | पाइरेट्स ऑफ द कैरेबियन:एट वर्ल्ड्स एंड | 169.0 | <टीडी>6.9
2 वें> | स्पेक्टर | <टीडी>148.0 |
3 वें> | द डार्क नाइट राइज़ | 165.0 | <टीडी>7.6
4 वें> | जॉन कार्टर | <टीडी>132.0 |
... वें> <टीडी>... <टीडी>... <टीडी>... <टीडी>... | ||
4798 वें> | एल मारियाची | <टीडी>81.0 |
4799 वें> | नववरवधू | <टीडी>85.0 |
4800 वें> | हस्ताक्षरित, मुहरबंद, वितरित | <टीडी>120.0 |
4801 वें> | शंघाई कॉलिंग | <टीडी>98.0 |
4802 वें> | ड्रू के साथ मेरी तिथि | <टीडी>90.0
कोड पठनीयता के मुद्दों से बचने के लिए, मैं हमेशा कॉलम के नामों को सूची के रूप में रखने के लिए एक वैरिएबल को परिभाषित करने की सलाह देता हूं और कोड के भीतर कई कॉलम नाम निर्दिष्ट करने के बजाय कॉलम नाम का उपयोग करता हूं।
columns=["title","runtime","vote_average","vote_count"]movies_dataset[columns]
वें> <वें>शीर्षक वें> <वें>रनटाइम वें> <वें>वोट_औसत वें> <वें>वोट_गिनती वें> | ||
---|---|---|
0 वें> | अवतार | <टीडी>162.0 |
1 वें> | पाइरेट्स ऑफ द कैरेबियन:एट वर्ल्ड्स एंड | 169.0 | <टीडी>6.9
2 वें> | स्पेक्टर | <टीडी>148.0 |
3 वें> | द डार्क नाइट राइज़ | 165.0 | <टीडी>7.6
4 वें> | जॉन कार्टर | <टीडी>132.0 |
... वें> <टीडी>... <टीडी>... <टीडी>... <टीडी>... | ||
4798 वें> | एल मारियाची | <टीडी>81.0 |
4799 वें> | नववरवधू | <टीडी>85.0 |
4800 वें> | हस्ताक्षरित, मुहरबंद, वितरित | <टीडी>120.0 |
4801 वें> | शंघाई कॉलिंग | <टीडी>98.0 |
4802 वें> | ड्रू के साथ मेरी तिथि | <टीडी>90.0
कॉलम नामों के आधार पर 4.DataFrame कॉलम।
.filter()विधि
स्ट्रिंग का उपयोग करके कॉलम खोजने और चुनने के लिए यह विधि काफी आसान है। यह काफी हद तक SQL में %% पैरामीटर की तरह ही काम करता है। याद रखें, .filter() विधि केवल कॉलम नामों का निरीक्षण करके कॉलम का चयन करती है, वास्तविक डेटा मानों का नहीं।
.filter() विधि तीन मापदंडों का समर्थन करती है जिनका उपयोग चयन संचालन के लिए किया जा सकता है।
।पसंद करना
.रेगेक्स
.आइटम
like parameter takes a string and attempts to find the column names that contain this string somewhere in the column name.
# Select the column that have a column name like "title" movies_dataset.filter(like="title").head(5)
वें> <वें>मूल_शीर्षक वें> <वें>शीर्षक वें> | ||
---|---|---|
0 वें> | अवतार | अवतार |
1 वें> | पाइरेट्स ऑफ द कैरेबियन:एट वर्ल्ड्स एंड | पाइरेट्स ऑफ द कैरेबियन:एट वर्ल्ड्स एंड |
2 वें> | स्पेक्टर | स्पेक्टर |
3 वें> | द डार्क नाइट राइज़ | द डार्क नाइट राइज़ |
4 वें> | जॉन कार्टर | जॉन कार्टर |
.regex - रेगुलर एक्सप्रेशन का उपयोग करके कॉलम नामों का चयन करने का अधिक लचीला तरीका
# Select the columns that end with "t" movies_dataset.filter(regex=t).head()के साथ समाप्त होने वाले कॉलम का चयन करें
वें> <वें>बजट वें> <वें>वोट_गिनती वें> |
---|
0 वें> <टीडी>23700000 <टीडी>11800 |
1 वें> <टीडी>300000000 <टीडी>4500 |
2 वें> <टीडी>245000000 <टीडी>4466 |
3 वें> <टीडी>250000000 <टीडी>9106 |
4 वें> <टीडी>260000000 <टीडी>2124 |
.items - कॉलम नाम को स्ट्रिंग या सूची के रूप में इंडेक्स ऑपरेटर को पास करने का डुप्लिकेट, KeyError को छोड़कर नहीं उठाया जाएगा
डेटा प्रकार के अनुसार डेटाफ़्रेम कॉलम।
यदि आप केवल कुछ निश्चित डेटा प्रकारों को फ़िल्टर और उपयोग करना चाहते हैं, तो .select_dtypes विधि कॉलम डेटा प्रकारों पर काम करती है।
फिर से, .select_dtypes विधि कई डेटा प्रकारों (एक सूची द्वारा) या एकल डेटा प्रकार (एक स्ट्रिंग के रूप में) को स्वीकार करती है जिसमें पैरामीटर शामिल या बहिष्कृत होते हैं और केवल दिए गए डेटा प्रकारों के कॉलम के साथ डेटाफ़्रेम लौटाते हैं।
.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) पांडा डेटाफ़्रेम से पूर्णांक डेटा प्रकारों को फ़िल्टर करना।
movies_dataset select_dtypes(include="int")head(3)
2 वें> |
---|
1 वें> |
0 वें> |
वें> |
बी)। पांडा डेटाफ़्रेम से पूर्णांक और फ्लोट डेटा प्रकार चुनें।
आप नीचे दी गई सूची के रूप में कई डेटा प्रकार निर्दिष्ट कर सकते हैं।
movies_dataset select_dtypes(include=["int64","float"]).head(3)
वें> <वें>बजट वें> <वें>आईडी वें> <वें>लोकप्रियता वें> <वें>राजस्व वें> <वें>रनटाइम वें> <वें>वोट_औसत वें> <वें>वोट_गिनती वें> | |||
---|---|---|---|
0 वें> <टीडी>23700000 <टीडी>19995 <टीडी>150.437577 | 2787965087 | <टीडी>162.0 ||
1 वें> <टीडी>300000000 <टीडी>285 | 139.082615 | 961000000 | 169.0 | <टीडी>6.9
2 वें> <टीडी>245000000 | 206647 | 107.376788 | 880674609 | <टीडी>148.0
ग) ठीक है, यदि आप केवल सभी संख्यात्मक डेटा प्रकार चाहते हैं, तो बस संख्या निर्दिष्ट करें
movies_dataset select_dtypes(include=["number"]).head(3)
वें> <वें>बजट वें> <वें>आईडी वें> <वें>लोकप्रियता वें> <वें>राजस्व वें> <वें>रनटाइम वें> <वें>वोट_औसत वें> <वें>वोट_गिनती वें> | |||
---|---|---|---|
0 वें> <टीडी>23700000 <टीडी>19995 <टीडी>150.437577 | 2787965087 | <टीडी>162.0 ||
1 वें> <टीडी>300000000 <टीडी>285 | 139.082615 | 961000000 | 169.0 | <टीडी>6.9
2 वें> <टीडी>245000000 | 206647 | 107.376788 | 880674609 | <टीडी>148.0
डी)। पांडा डेटाफ़्रेम से कुछ डेटा प्रकार बहिष्कृत करें।
movies_dataset select_dtypes(exclude=["object"]).head(3)
वें> <वें>बजट वें> <वें>आईडी वें> <वें>लोकप्रियता वें> <वें>राजस्व वें> <वें>रनटाइम वें> <वें>वोट_औसत वें> <वें>वोट_गिनती वें> | |||
---|---|---|---|
0 वें> <टीडी>23700000 <टीडी>19995 <टीडी>150.437577 | 2787965087 | <टीडी>162.0 ||
1 वें> <टीडी>300000000 <टीडी>285 | 139.082615 | 961000000 | 169.0 | <टीडी>6.9
2 वें> <टीडी>245000000 | 206647 | 107.376788 | 880674609 | <टीडी>148.0
नोट :- निपटने के लिए स्ट्रिंग डेटा प्रकार नहीं है, पांडा उन्हें ऑब्जेक्ट में कनवर्ट करते हैं, इसलिए यदि आप एक अपवाद का सामना करते हैं "टाइप एरर:डेटा टाइप "स्ट्रिंग" समझ में नहीं आता है, तो इसके बजाय स्ट्रिंग को ऑब्जेक्ट से बदलें।