pandas 0.23 - pandas.factorize()

pandas.factorize




pandas

pandas.factorize

pandas.factorize(values, sort=False, order=None, na_sentinel=-1, size_hint=None) [source]

ऑब्जेक्ट को एन्यूमरेटेड प्रकार या श्रेणीबद्ध चर के रूप में एन्कोड करें।

यह विधि किसी सरणी के संख्यात्मक निरूपण को प्राप्त करने के लिए उपयोगी है, जब यह सब अलग-अलग मानों की पहचान कर रहा है। pandas.factorize() एक शीर्ष-स्तरीय फ़ंक्शन pandas.factorize() , और एक विधि Series.factorize() और Index.factorize() दोनों के रूप में उपलब्ध है।

पैरामीटर:

मूल्य : अनुक्रम

एक 1-डी seqeunce। वह वस्तुएं जो पंडों की वस्तुएं नहीं हैं, उन्हें फैक्टराइजेशन से पहले ndarrays के लिए coereced किया जाता है।

सॉर्ट : बूल, डिफ़ॉल्ट गलत

रिश्ते को बनाए रखने के लिए uniques और छंटनी labels को छाँटें।

क्रम

संस्करण 0.23.0 के बाद से पदावनत: इस पैरामीटर का कोई प्रभाव नहीं है और यह पदावनत है।

na_sentinel : int, default -1

मान "नहीं मिला"।

size_hint : int, वैकल्पिक

हैशटेबल सिंटर का संकेत।

यह दिखाता है:

लेबल : ndarray

एक पूर्णांक ndarray जो कि एक इंडेक्स है जो uniquesuniques.take(labels) में values के समान ही values

uniques : ndarray, सूचकांक, या श्रेणीबद्ध

अद्वितीय मान्य मूल्य। जब values श्रेणीबद्ध होते हैं, तो uniques एक uniques होती है। जब values कुछ अन्य पांडा ऑब्जेक्ट होते हैं, तो एक Index वापस किया जाता है। अन्यथा, 1-डी ndarray वापस आ गया है।

ध्यान दें

यहां तक ​​कि अगर values में एक लापता मूल्य है, तो भी इसके लिए एंट्री नहीं होगी।

यह भी देखें

pandas.cut
निरंतर-मूल्यवान सरणी को अलग करें।
pandas.unique
किसी सरणी में अद्वितीय वेल्यूज़ खोजें।

उदाहरण

ये सभी उदाहरण pd.factorize(values) तरह एक शीर्ष-स्तरीय विधि के रूप में दिखाई देते हैं। परिणाम Series.factorize() जैसे तरीकों के लिए समान हैं।

>>> labels, uniques = pd.factorize(['b', 'b', 'a', 'c', 'b'])
>>> labels
array([0, 0, 1, 2, 0])
>>> uniques
array(['b', 'a', 'c'], dtype=object)

sort=True , uniques को सॉर्ट किया जाएगा, और labels को फेरबदल किया जाएगा ताकि संबंध बनाए रखा जाए।

>>> labels, uniques = pd.factorize(['b', 'b', 'a', 'c', 'b'], sort=True)
>>> labels
array([1, 1, 0, 2, 1])
>>> uniques
array(['a', 'b', 'c'], dtype=object)

गुम मानों को na_sentinel (डिफ़ॉल्ट रूप से -1 ) के साथ labels में दर्शाया गया है। ध्यान दें कि लापता मानों को कभी भी uniques में शामिल नहीं किया जाता है।

>>> labels, uniques = pd.factorize(['b', None, 'a', 'c', 'b'])
>>> labels
array([ 0, -1,  1,  2,  0])
>>> uniques
array(['b', 'a', 'c'], dtype=object)

इस प्रकार अब तक, हमने केवल फैक्टराइज्ड सूचियों (जो आंतरिक रूप से न्यूमरी सरणियों के लिए बाध्य हैं) हैं। पंडों की वस्तुओं को कारक बनाते समय, विभिन्न प्रकार की uniques अलग-अलग होंगी। श्रेणीबद्ध के लिए, एक Categorical लौटाया जाता है।

>>> cat = pd.Categorical(['a', 'a', 'c'], categories=['a', 'b', 'c'])
>>> labels, uniques = pd.factorize(cat)
>>> labels
array([0, 0, 1])
>>> uniques
[a, c]
Categories (3, object): [a, b, c]

ध्यान दें कि 'b' uniques.categories , desipite cat.values ​​में मौजूद नहीं है।

अन्य सभी पांडा वस्तुओं के लिए, उपयुक्त प्रकार का एक इंडेक्स वापस किया जाता है।

>>> cat = pd.Series(['a', 'a', 'c'])
>>> labels, uniques = pd.factorize(cat)
>>> labels
array([0, 0, 1])
>>> uniques
Index(['a', 'c'], dtype='object')