pandas 0.23 - Series.copy()

pandas.Series.copy




pandas

pandas.Series.copy

Series.copy(deep=True) [source]

इस ऑब्जेक्ट के सूचकांकों और डेटा की एक प्रति बनाएँ।

जब deep=True (डिफ़ॉल्ट), कॉलिंग ऑब्जेक्ट के डेटा और सूचकांकों की एक प्रतिलिपि के साथ एक नई वस्तु बनाई जाएगी। कॉपी के डेटा या सूचकांकों में संशोधन मूल ऑब्जेक्ट में नहीं दिखेगा (नीचे नोट्स देखें)।

जब deep=False , तो कॉलिंग ऑब्जेक्ट के डेटा या इंडेक्स को कॉपी किए बिना एक नई ऑब्जेक्ट बनाई जाएगी (केवल डेटा और इंडेक्स को कॉपी किया जाता है)। मूल के डेटा में कोई भी परिवर्तन उथले प्रति (और इसके विपरीत) में परिलक्षित होगा।

पैरामीटर:

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

डेटा की एक प्रति और सूचकांकों सहित एक गहरी प्रतिलिपि बनाएँ। deep=False साथ deep=False न तो सूचकांक और न ही डेटा की नकल की जाती है।

यह दिखाता है:

प्रतिलिपि : श्रृंखला, डेटाफ़्रेम या पैनल

ऑब्जेक्ट प्रकार कॉलर से मेल खाता है।

टिप्पणियाँ

जब deep=True , डेटा कॉपी किया जाता है, लेकिन वास्तविक पायथन ऑब्जेक्ट्स को आवर्ती रूप से कॉपी नहीं किया जाएगा, केवल ऑब्जेक्ट का संदर्भ। यह मानक लाइब्रेरी में copy.deepcopy विपरीत है, जो ऑब्जेक्ट डेटा की पुनरावृत्ति को कॉपी करता है (नीचे उदाहरण देखें)।

हालांकि Index ऑब्जेक्ट्स को deep=True कॉपी किया जाता है, प्रदर्शन के कारणों के लिए अंतर्निहित सुन्न सरणी की नकल नहीं की जाती है। चूंकि Index अपरिवर्तनीय है, अंतर्निहित डेटा को सुरक्षित रूप से साझा किया जा सकता है और प्रतिलिपि की आवश्यकता नहीं है।

उदाहरण

>>> s = pd.Series([1, 2], index=["a", "b"])
>>> s
a    1
b    2
dtype: int64
>>> s_copy = s.copy()
>>> s_copy
a    1
b    2
dtype: int64

डिफ़ॉल्ट / गहरी (गहरी) प्रतिलिपि बनाम कॉपी करें:

>>> s = pd.Series([1, 2], index=["a", "b"])
>>> deep = s.copy()
>>> shallow = s.copy(deep=False)

उथला कॉपी मूल के साथ डेटा और सूचकांक साझा करता है।

>>> s is shallow
False
>>> s.values is shallow.values and s.index is shallow.index
True

डीप कॉपी में डेटा और इंडेक्स की अपनी कॉपी होती है।

>>> s is deep
False
>>> s.values is deep.values or s.index is deep.index
False

उथले प्रतिलिपि और मूल द्वारा साझा किए गए डेटा के अपडेट दोनों में परिलक्षित होते हैं; गहरी प्रति अपरिवर्तित रहती है।

>>> s[0] = 3
>>> shallow[1] = 4
>>> s
a    3
b    4
dtype: int64
>>> shallow
a    3
b    4
dtype: int64
>>> deep
a    1
b    2
dtype: int64

ध्यान दें कि जब पायथन ऑब्जेक्ट्स वाली ऑब्जेक्ट को कॉपी करते हैं, तो एक गहरी कॉपी डेटा को कॉपी करेगी, लेकिन पुनरावृत्ति नहीं करेगी। नेस्टेड डेटा ऑब्जेक्ट को अद्यतन करना गहरी प्रतिलिपि में परिलक्षित होगा।

>>> s = pd.Series([[1, 2], [3, 4]])
>>> deep = s.copy()
>>> s[0][0] = 10
>>> s
0    [10, 2]
1     [3, 4]
dtype: object
>>> deep
0    [10, 2]
1     [3, 4]
dtype: object