मैं निम्नलिखित पायथन कोड है, जो दो श्रृंखला (a
और b
) के साथ एक पांडा DataFrame बनाता भाग गया, और उसके बाद दो नए श्रृंखला (c
और d
) बनाने का प्रयास करता:नाम पर एक अवधि के साथ एक पांडा सीरीज बनाना
import pandas as pd
df = pd.DataFrame({'a':[1, 2, 3], 'b':[4, 5, 6]})
df['c'] = df.a + df.b
df.d = df.a + df.b
मेरी समझ यह है कि यदि एक पांडस श्रृंखला डेटाफ्रेम का हिस्सा है, और श्रृंखला के नाम में कोई रिक्त स्थान नहीं है (और मौजूदा विशेषता या विधि से टकरा नहीं है), श्रृंखला को एक विशेषता के रूप में एक्सेस किया जा सकता है डेटाफ्रेम इस प्रकार, मुझे उम्मीद थी कि लाइन 3 काम करेगा (इस तरह से आप एक नई पांडस श्रृंखला बनाते हैं), और मुझे उम्मीद है कि लाइन 4 असफल हो जाएगी (चूंकि d
विशेषता तब तक डेटाफ्रेम के लिए मौजूद नहीं है जब तक आप इसे निष्पादित नहीं कर लेते कोड की रेखा)।
मेरे आश्चर्य के लिए, लाइन 4 में कोई त्रुटि नहीं हुई। इसके बजाय, DataFrame अब तीन श्रृंखला में शामिल हैं:
>>> df
a b c
0 1 4 5
1 2 5 7
2 3 6 9
और वहाँ एक नई वस्तु, df.d
है, जो एक पांडा श्रृंखला है:
>>> df.d
0 5
1 7
2 9
dtype: int64
>>> type(df.d)
pandas.core.series.Series
मेरे सवालों का इस प्रकार हैं:
- लाइन 4 के परिणामस्वरूप त्रुटि क्यों हुई?
df.d
अब नियमित "सीरीज कार्यक्षमता के साथ" सामान्य "पांडस श्रृंखला है?df.d
df
डेटाफ्रेम पर किसी भी तरह से "कनेक्ट" है, या यह पूरी तरह से स्वतंत्र वस्तु है?
इस सवाल पूछने में मेरे प्रेरणा बस यह है कि मैं बेहतर पांडा को समझने के लिए चाहते हैं, और इसलिए नहीं कि लाइन के लिए एक विशेष उपयोग के मामले 4.
मेरे अजगर संस्करण 2.7.11 है वहाँ है, और मेरे पांडा संस्करण 0.17.1 है।
यह अलेक्जेंडर के उत्तर में सहायक सहायक था, धन्यवाद! –