pandas 0.23 - pandas.cut()

pandas.cut




pandas

pandas.cut

pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise') [source]

असतत अंतराल में बिन मान।

जब आपको खंडों को खंडों में विभाजित करने और छाँटने की आवश्यकता हो तो cut उपयोग करें। यह फ़ंक्शन निरंतर चर से श्रेणीबद्ध चर में जाने के लिए भी उपयोगी है। उदाहरण के लिए, cut आयु को आयु सीमा के समूहों में परिवर्तित कर सकता है। बिनिंग को डिब्बे की समान संख्या, या डिब्बे की पूर्व-निर्दिष्ट सरणी का समर्थन करता है।

पैरामीटर:

x : सरणी-जैसा

इनपुट सरणी को बायन किया जाएगा। 1-आयामी होना चाहिए।

डिब्बे : इंट, स्केल का अनुक्रम, या पांडा। IntervalIndex

बिन के मापदंड।

  • int: x की श्रेणी में बराबर-चौड़ाई वाले डिब्बे की संख्या को परिभाषित करता है। x की सीमा न्यूनतम के अधिकतम और अधिकतम मानों को शामिल करने के लिए प्रत्येक पक्ष पर .1% द्वारा विस्तारित की जाती है।
  • स्केलर्स का अनुक्रम: गैर-समान चौड़ाई के लिए अनुमति देने वाले बिन किनारों को परिभाषित करता है। x की सीमा का कोई विस्तार नहीं किया गया है।
  • IntervalIndex: उपयोग किए जाने वाले सटीक डिब्बे को परिभाषित करता है।

सही : बूल, डिफ़ॉल्ट सही

इंगित करता है कि क्या bins में सबसे दाहिने किनारे शामिल हैं या नहीं। यदि right == True (डिफ़ॉल्ट), तो bins [1, 2, 3, 4] इंगित करते हैं (1,2], (2,3], (3,4)। यह तर्क तब नजरअंदाज कर दिया जाता है जब bins एक इंटरवल इंडेक्स होते हैं। ।

लेबल : सरणी या बूल, वैकल्पिक

लौटे डिब्बे के लिए लेबल निर्दिष्ट करता है। परिणामी डिब्बे के समान लंबाई होनी चाहिए। यदि गलत है, तो डिब्बे के केवल पूर्णांक संकेतक लौटाता है। यह आउटपुट कंटेनर के प्रकार को प्रभावित करता है (नीचे देखें)। इस तर्क को नजरअंदाज कर दिया जाता है जब bins एक IntervalIndex है।

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

डिब्बे वापस करने हैं या नहीं। उपयोगी जब डिब्बे को एक स्केलर के रूप में प्रदान किया जाता है।

परिशुद्धता : int, डिफ़ॉल्ट ३

जिस पर bins लेबल को संग्रहीत करने और प्रदर्शित करने की शुद्धता।

शामिल_लॉस्ट : बूल, डिफ़ॉल्ट गलत

पहला अंतराल वाम-समावेशी होना चाहिए या नहीं।

डुप्लिकेट : {डिफ़ॉल्ट 'बढ़ा', 'ड्रॉप'}, वैकल्पिक

यदि बिन किनारे अद्वितीय नहीं हैं, तो ValueError बढ़ाएँ या गैर-चिह्न हटा दें।

संस्करण में नया 0.23.0।

यह दिखाता है:

बाहर : पांडा। श्रेणीबद्ध, श्रृंखला या ndarray

x प्रत्येक मान के लिए संबंधित बिन का प्रतिनिधित्व करने वाली एक सरणी जैसी वस्तु। प्रकार labels के मूल्य पर निर्भर करता है।

  • ट्रू (डिफ़ॉल्ट): श्रृंखला x या एक पांडा के लिए एक श्रृंखला देता है। अन्य सभी सूचनाओं के लिए श्रेणीबद्ध। भीतर संग्रहीत मान अंतराल अंतराल हैं।
  • स्केलर्स का क्रम: श्रृंखला x या एक पांडा के लिए एक श्रृंखला लौटाता है। अन्य सभी सूचनाओं के लिए श्रेणीबद्ध। भीतर जो मूल्य संचित हैं, वे क्रम में जो भी हैं।
  • असत्य: पूर्णांकों का एक विस्तृत विवरण देता है।

डिब्बे : numpy.ndarray या IntervalIndex।

गणना या निर्दिष्ट डिब्बे। केवल तभी वापस आए जब retbins=True । स्केलर या सीक्वेंस bins , यह गणना किए गए डब्बे के साथ एक ndarray है। यदि duplicates=drop सेट करें duplicates=drop , तो bins गैर-अद्वितीय बिन छोड़ देंगे। एक IntervalIndex bins , यह bins बराबर है।

यह भी देखें

qcut
वैरिएबल को समान आकार की बाल्टियों में रैंक के आधार पर या नमूना मात्राओं के आधार पर अलग करें।
pandas.Categorical
मानों के निश्चित सेट से आने वाले डेटा को संग्रहीत करने के लिए ऐरे प्रकार।
Series
अक्ष लेबल के साथ एक आयामी सरणी (समय श्रृंखला सहित)।
pandas.IntervalIndex
एक अनुक्रमित, स्लाइसेबल सेट को लागू करने वाला अपरिवर्तनीय सूचकांक।

टिप्पणियाँ

कोई भी NA मान परिणाम में NA होगा। परिणामी श्रृंखला या पंडों में सीमा मानों में से NA होगा। श्रेणी वस्तु।

उदाहरण

तीन समान आकार के डिब्बे में विवेक।

>>> pd.cut(np.array([1, 7, 5, 4, 6, 3]), 3)
... 
[(0.994, 3.0], (5.0, 7.0], (3.0, 5.0], (3.0, 5.0], (5.0, 7.0], ...
Categories (3, interval[float64]): [(0.994, 3.0] < (3.0, 5.0] ...
>>> pd.cut(np.array([1, 7, 5, 4, 6, 3]), 3, retbins=True)
... 
([(0.994, 3.0], (5.0, 7.0], (3.0, 5.0], (3.0, 5.0], (5.0, 7.0], ...
Categories (3, interval[float64]): [(0.994, 3.0] < (3.0, 5.0] ...
array([0.994, 3.   , 5.   , 7.   ]))

एक ही डिब्बे को हटाता है, लेकिन उन्हें विशिष्ट लेबल असाइन करता है। ध्यान दें कि श्रेणीबद्ध श्रेणी की labels और आदेश दिया गया है।

>>> pd.cut(np.array([1, 7, 5, 4, 6, 3]),
...        3, labels=["bad", "medium", "good"])
[bad, good, medium, medium, good, bad]
Categories (3, object): [bad < medium < good]

labels=False मतलब है कि आप केवल डिब्बे वापस चाहते हैं।

>>> pd.cut([0, 1, 1, 2], bins=4, labels=False)
array([0, 1, 1, 3])

एक इनपुट के रूप में एक श्रृंखला पास करना श्रेणीबद्ध dtype के साथ एक श्रृंखला देता है:

>>> s = pd.Series(np.array([2, 4, 6, 8, 10]),
...               index=['a', 'b', 'c', 'd', 'e'])
>>> pd.cut(s, 3)
... 
a    (1.992, 4.667]
b    (1.992, 4.667]
c    (4.667, 7.333]
d     (7.333, 10.0]
e     (7.333, 10.0]
dtype: category
Categories (3, interval[float64]): [(1.992, 4.667] < (4.667, ...

एक इनपुट के रूप में एक श्रृंखला पास करना मानचित्रण मूल्य के साथ एक श्रृंखला देता है। यह डिब्बे के आधार पर संख्यात्मक रूप से अंतराल पर मैप करने के लिए उपयोग किया जाता है।

>>> s = pd.Series(np.array([2, 4, 6, 8, 10]),
...               index=['a', 'b', 'c', 'd', 'e'])
>>> pd.cut(s, [0, 2, 4, 6, 8, 10], labels=False, retbins=True, right=False)
... 
(a    0.0
 b    1.0
 c    2.0
 d    3.0
 e    4.0
 dtype: float64, array([0, 2, 4, 6, 8]))

जब डिब्बे अद्वितीय न हों तो drop वैकल्पिक का उपयोग करें

>>> pd.cut(s, [0, 2, 4, 6, 10, 10], labels=False, retbins=True,
...    right=False, duplicates='drop')
... 
(a    0.0
 b    1.0
 c    2.0
 d    3.0
 e    3.0
 dtype: float64, array([0, 2, 4, 6, 8]))

bins लिए एक IntervalIndex पास करने से उन श्रेणियों में परिणाम होता है। ध्यान दें कि IntervalIndex द्वारा कवर किए गए मान NaN पर सेट नहीं हैं। 0 पहले बिन के बाईं ओर है (जो दाईं ओर बंद है), और 1.5 दो डिब्बे के बीच में पड़ता है।

>>> bins = pd.IntervalIndex.from_tuples([(0, 1), (2, 3), (4, 5)])
>>> pd.cut([0, 0.5, 1.5, 2.5, 4.5], bins)
[NaN, (0, 1], NaN, (2, 3], (4, 5]]
Categories (3, interval[int64]): [(0, 1] < (2, 3] < (4, 5]]