pandas 0.23 - DataFrame.truncate()

pandas.DataFrame.truncate




pandas

pandas.DataFrame.truncate

DataFrame.truncate(before=None, after=None, axis=None, copy=True) [source]

कुछ सूचकांक मूल्य से पहले और बाद में एक श्रृंखला या डेटाफ्रेम को काटें।

यह कुछ थ्रेसहोल्ड के ऊपर या नीचे सूचकांक मूल्यों के आधार पर बूलियन इंडेक्सिंग के लिए एक उपयोगी शॉर्टहैंड है।

पैरामीटर:

इससे पहले : दिनांक, स्ट्रिंग, इंट

इस सूचकांक मूल्य से पहले सभी पंक्तियों को काटें।

के बाद : दिनांक, स्ट्रिंग, int

इस अनुक्रमणिका मान के बाद सभी पंक्तियों को काटें।

अक्ष : {0 या 'सूचकांक', 1 या 'कॉलम'}, वैकल्पिक

धुरी को कुचलना। अनुक्रमणिका (पंक्तियों) को डिफ़ॉल्ट रूप से काटता है।

प्रतिलिपि : बूलियन, डिफ़ॉल्ट सत्य है,

काटे गए अनुभाग की एक प्रति लौटाएं।

यह दिखाता है:

फोन करने वाले का प्रकार

छंटनी हुई श्रृंखला या डेटाफ़्रेम।

यह भी देखें

DataFrame.loc
लेबल द्वारा डेटाफ़्रेम का एक सबसेट चुनें।
DataFrame.iloc
स्थिति द्वारा किसी DataFrame का सबसेट चुनें।

टिप्पणियाँ

यदि अनुक्रमित किए जा रहे सूचकांक में केवल टाइमस्टैम्प के बजाय स्ट्रिंग के रूप में निर्दिष्ट किया जा सकता है, उससे before और after में केवल डेटाइम मूल्य होते हैं।

उदाहरण

>>> df = pd.DataFrame({'A': ['a', 'b', 'c', 'd', 'e'],
...                    'B': ['f', 'g', 'h', 'i', 'j'],
...                    'C': ['k', 'l', 'm', 'n', 'o']},
...                    index=[1, 2, 3, 4, 5])
>>> df
   A  B  C
1  a  f  k
2  b  g  l
3  c  h  m
4  d  i  n
5  e  j  o
>>> df.truncate(before=2, after=4)
   A  B  C
2  b  g  l
3  c  h  m
4  d  i  n

किसी DataFrame के कॉलम को छोटा किया जा सकता है।

>>> df.truncate(before="A", after="B", axis="columns")
   A  B
1  a  f
2  b  g
3  c  h
4  d  i
5  e  j

श्रृंखला के लिए, केवल पंक्तियों को छोटा किया जा सकता है।

>>> df['A'].truncate(before=2, after=4)
2    b
3    c
4    d
Name: A, dtype: object

truncate में सूचकांक मान डेटेटाइम या स्ट्रिंग दिनांक हो सकते हैं।

>>> dates = pd.date_range('2016-01-01', '2016-02-01', freq='s')
>>> df = pd.DataFrame(index=dates, data={'A': 1})
>>> df.tail()
                     A
2016-01-31 23:59:56  1
2016-01-31 23:59:57  1
2016-01-31 23:59:58  1
2016-01-31 23:59:59  1
2016-02-01 00:00:00  1
>>> df.truncate(before=pd.Timestamp('2016-01-05'),
...             after=pd.Timestamp('2016-01-10')).tail()
                     A
2016-01-09 23:59:56  1
2016-01-09 23:59:57  1
2016-01-09 23:59:58  1
2016-01-09 23:59:59  1
2016-01-10 00:00:00  1

क्योंकि इंडेक्स एक डेटाइमइंडेक्स है जिसमें केवल दिनांक हैं, हम स्ट्रिंग के before और after में निर्दिष्ट कर सकते हैं। उन्हें छंटनी से पहले टाइमस्टैम्प के लिए मजबूर किया जाएगा।

>>> df.truncate('2016-01-05', '2016-01-10').tail()
                     A
2016-01-09 23:59:56  1
2016-01-09 23:59:57  1
2016-01-09 23:59:58  1
2016-01-09 23:59:59  1
2016-01-10 00:00:00  1

ध्यान दें कि किसी भी अनिर्दिष्ट समय घटक (मध्यरात्रि) के लिए 0 मान truncate मान लेता है। यह आंशिक स्ट्रिंग स्लाइसिंग से भिन्न होता है, जो किसी भी आंशिक मिलान तिथि को लौटाता है।

>>> df.loc['2016-01-05':'2016-01-10', :].tail()
                     A
2016-01-10 23:59:55  1
2016-01-10 23:59:56  1
2016-01-10 23:59:57  1
2016-01-10 23:59:58  1
2016-01-10 23:59:59  1