श्रेणी वैरिएबल सेट करना

Python में Categorical Data के साथ काम करना

Kasey Jones

Research Data Scientist

नया डेटासेट: गोद लिए जाने योग्य कुत्ते

dogs.info()  
RangeIndex: 2937 entries, 0 to 2936, Data columns (total 19 columns):
 #   Column             Non-Null Count  Dtype  
 --  ------             --------------  -----  
 0   ID                 2937 non-null   int64  
 ...
 8   color              2937 non-null   object 
 9   coat               2937 non-null   object 
 ...
 17  get_along_cats     431 non-null    object 
 18  keep_in            1916 non-null   object 
dtypes: float64(1), int64(1), object(17)
memory usage: 436.1+ KB
...
1 https://www.kaggle.com/jmolitoris/adoptable-dogs
Python में Categorical Data के साथ काम करना

कुत्ते का कोट

dogs["coat"] = dogs["coat"].astype("category")
dogs["coat"].value_counts(dropna=False)
short         1972
medium         565
wirehaired     220
long           180
Name: coat, dtype: int64
Python में Categorical Data के साथ काम करना

.cat एक्सेसर ऑब्जेक्ट

Series.cat.method_name

सामान्य पैरामीटर:

  • new_categories: श्रेणियों की एक सूची
  • inplace: Boolean - क्या अपडेट Series को ओवरराइट करे
  • ordered: Boolean - क्या categorical को ordered माना जाए
Python में Categorical Data के साथ काम करना

Series की श्रेणियाँ सेट करना

श्रेणियाँ सेट करें:

dogs["coat"] = dogs["coat"].cat.set_categories(
  new_categories=["short", "medium", "long"]
)

वैल्यू काउंट जाँचें:

dogs["coat"].value_counts(dropna=False)
short     1972
medium     565
NaN        220
long       180
Python में Categorical Data के साथ काम करना

क्रम सेट करना

dogs["coat"] = dogs["coat"].cat.set_categories(
  new_categories=["short", "medium", "long"],
  ordered=True
)
dogs["coat"].head(3)
0     short
1     short
2     short
Name: coat, dtype: category
Categories (3, object): ['short' < 'medium' < 'long']
Python में Categorical Data के साथ काम करना

मिसिंग श्रेणियाँ

dogs["likes_people"].value_counts(dropna=False)
yes    1991
NaN     938
no        8

NaN इनका मतलब हो सकता है:

  1. सच में अज्ञात (हमने जाँचा नहीं)
  2. पक्का नहीं (कुत्ता "कुछ" लोगों को पसंद करता है)
Python में Categorical Data के साथ काम करना

श्रेणियाँ जोड़ना

श्रेणियाँ जोड़ें

dogs["likes_people"] = dogs["likes_people"].astype("category")
dogs["likes_people"] = dogs["likes_people"].cat.add_categories(
  new_categories=["did not check", "could not tell"]
)

श्रेणियाँ जाँचें:

dogs["likes_people"].cat.categories
Index(['no', 'yes', 'did not check', 'could not tell'], dtype='object')
Python में Categorical Data के साथ काम करना

नई श्रेणियाँ

dogs["likes_people"].value_counts(dropna=False)
yes               1991
NaN                938
no                   8
could not tell       0
did not check        0
Python में Categorical Data के साथ काम करना

श्रेणियाँ हटाना

dogs["coat"] = dogs["coat"].astype("category")
dogs["coat"] = dogs["coat"].cat.remove_categories(removals=["wirehaired"])

श्रेणियाँ जाँचें:

dogs["coat"].cat.categories
Index(['long', 'medium', 'short'], dtype='object')
Python में Categorical Data के साथ काम करना

मेथड्स रिकैप

  • सेट करना: cat.set_categories()
    • श्रेणियों के क्रम को सेट कर सकते हैं
    • इस मेथड में जो वैल्यू नहीं दी गई, वे ड्रॉप हो जाती हैं
  • जोड़ना: cat.add_categories()
    • DataFrame में किसी डेटा वैल्यू को नहीं बदलता
    • इस मेथड में सूचीबद्ध न की गई श्रेणियाँ जस की तस रहती हैं
  • हटाना: cat.remove_categories()
    • सूचीबद्ध श्रेणियों से मेल खाती वैल्यू NaN हो जाती है
Python में Categorical Data के साथ काम करना

श्रेणियाँ अपडेट करने का अभ्यास

Python में Categorical Data के साथ काम करना

Preparing Video For Download...