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

रेगेक्सपी और डेटाटाइप का उपयोग करके एकाधिक डेटाफ्रेम कॉलम का चयन कैसे करें

डेटाफ़्रेम की तुलना स्प्रेडशीट में रखे गए डेटा सेट या पंक्तियों और स्तंभों वाले डेटाबेस से की जा सकती है। 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)


<थेड> <टीडी>150.437577
<टीडी>162.0
<टीडी>7.2
<टीडी>11800
<टीडी>6.9
<टीडी>4500
<टीडी>एन
<टीडी>148.0
<टीडी>6.3
<टीडी>4466
<टीडी>7.6
<टीडी>9106
<टीडी>132.0
<टीडी>6.1
<टीडी>2124

<वें>बजट
<वें>आईडी
<थ>मूल_भाषा
<वें>मूल_शीर्षक
<वें>लोकप्रियता
<वें>रिलीज_तारीख
<वें>राजस्व
<वें>रनटाइम
<वें>स्थिति
<वें>शीर्षक
<वें>वोट_औसत
<वें>वोट_गिनती
0
<टीडी>23700000
<टीडी>19995
<टीडी>एन
अवतार
10/12/2009
2787965087
विमोचित
अवतार
1
<टीडी>300000000
<टीडी>285
<टीडी>एन
पाइरेट्स ऑफ द कैरेबियन:एट वर्ल्ड्स एंड
139.082615
19/05/2007
961000000
169.0
विमोचित
पाइरेट्स ऑफ द कैरेबियन:एट वर्ल्ड्स एंड
2
<टीडी>245000000
206647
स्पेक्टर
107.376788
26/10/2015
880674609
विमोचित
स्पेक्टर
3
<टीडी>250000000
<टीडी>49026
<टीडी>एन
द डार्क नाइट राइज़
112.312950
16/07/2012
1084939099
165.0
विमोचित
द डार्क नाइट राइज़
4
<टीडी>260000000
<टीडी>49529
<टीडी>एन
जॉन कार्टर
43.926995
7/03/2012
284139100
विमोचित
जॉन कार्टर

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"]]


<थेड> <टीडी>162.0
<टीडी>7.2
<टीडी>11800
<टीडी>6.9
<टीडी>4500
<टीडी>148.0
<टीडी>6.3
<टीडी>4466
<टीडी>7.6
<टीडी>9106
<टीडी>132.0
<टीडी>6.1
<टीडी>2124
<टीडी>81.0
<टीडी>6.6
<टीडी>238
<टीडी>85.0
<टीडी>5.9
<टीडी>5
<टीडी>120.0
<टीडी>7.0
<टीडी>6
<टीडी>98.0
<टीडी>5.7
<टीडी>7
<टीडी>90.0
<टीडी>6.3
<टीडी>16

<वें>शीर्षक
<वें>रनटाइम
<वें>वोट_औसत
<वें>वोट_गिनती
0
अवतार
1
पाइरेट्स ऑफ द कैरेबियन:एट वर्ल्ड्स एंड
169.0
2
स्पेक्टर
3
द डार्क नाइट राइज़
165.0
4
जॉन कार्टर
...
<टीडी>...
<टीडी>...
<टीडी>...
<टीडी>...
4798
एल मारियाची
4799
नववरवधू
4800
हस्ताक्षरित, मुहरबंद, वितरित
4801
शंघाई कॉलिंग
4802
ड्रू के साथ मेरी तिथि

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

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


<थेड> <टीडी>162.0
<टीडी>7.2
<टीडी>11800
<टीडी>6.9
<टीडी>4500
<टीडी>148.0
<टीडी>6.3
<टीडी>4466
<टीडी>7.6
<टीडी>9106
<टीडी>132.0
<टीडी>6.1
<टीडी>2124
<टीडी>81.0
<टीडी>6.6
<टीडी>238
<टीडी>85.0
<टीडी>5.9
<टीडी>5
<टीडी>120.0
<टीडी>7.0
<टीडी>6
<टीडी>98.0
<टीडी>5.7
<टीडी>7
<टीडी>90.0
<टीडी>6.3
<टीडी>16

<वें>शीर्षक
<वें>रनटाइम
<वें>वोट_औसत
<वें>वोट_गिनती
0
अवतार
1
पाइरेट्स ऑफ द कैरेबियन:एट वर्ल्ड्स एंड
169.0
2
स्पेक्टर
3
द डार्क नाइट राइज़
165.0
4
जॉन कार्टर
...
<टीडी>...
<टीडी>...
<टीडी>...
<टीडी>...
4798
एल मारियाची
4799
नववरवधू
4800
हस्ताक्षरित, मुहरबंद, वितरित
4801
शंघाई कॉलिंग
4802
ड्रू के साथ मेरी तिथि

कॉलम नामों के आधार पर 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)


<थेड> <टीडी>162.0
<टीडी>7.2
<टीडी>11800
<टीडी>6.9
<टीडी>4500
<टीडी>148.0
<टीडी>6.3
<टीडी>4466

<वें>बजट
<वें>आईडी
<वें>लोकप्रियता
<वें>राजस्व
<वें>रनटाइम
<वें>वोट_औसत
<वें>वोट_गिनती
0
<टीडी>23700000
<टीडी>19995
<टीडी>150.437577
2787965087
1
<टीडी>300000000
<टीडी>285
139.082615
961000000
169.0
2
<टीडी>245000000
206647
107.376788
880674609

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

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


<थेड> <टीडी>162.0
<टीडी>7.2
<टीडी>11800
<टीडी>6.9
<टीडी>4500
<टीडी>148.0
<टीडी>6.3
<टीडी>4466

<वें>बजट
<वें>आईडी
<वें>लोकप्रियता
<वें>राजस्व
<वें>रनटाइम
<वें>वोट_औसत
<वें>वोट_गिनती
0
<टीडी>23700000
<टीडी>19995
<टीडी>150.437577
2787965087
1
<टीडी>300000000
<टीडी>285
139.082615
961000000
169.0
2
<टीडी>245000000
206647
107.376788
880674609

डी)। पांडा डेटाफ़्रेम से कुछ डेटा प्रकार बहिष्कृत करें।


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


<थेड> <टीडी>162.0
<टीडी>7.2
<टीडी>11800
<टीडी>6.9
<टीडी>4500
<टीडी>148.0
<टीडी>6.3
<टीडी>4466

<वें>बजट
<वें>आईडी
<वें>लोकप्रियता
<वें>राजस्व
<वें>रनटाइम
<वें>वोट_औसत
<वें>वोट_गिनती
0
<टीडी>23700000
<टीडी>19995
<टीडी>150.437577
2787965087
1
<टीडी>300000000
<टीडी>285
139.082615
961000000
169.0
2
<टीडी>245000000
206647
107.376788
880674609


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


  1. पायथन - पंडों के डेटाफ्रेम से कई स्तंभों का चयन करें

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

  1. माइक्रोसॉफ्ट एक्सेस में कॉलम को फ्रीज और अनफ्रीज कैसे करें

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

  1. पाइथन में टिंकर का उपयोग करके निर्देशिका का चयन कैसे करें और स्थान को कैसे स्टोर करें?

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