मैं पांडा के लिए नया हूँ और एक बहुत ही बुनियादी सवाल है, कृपया!

अजगर v3.6 पर स्पाइडर के माध्यम से:

x= pd.DataFrame(columns = ['1','2'])
print(x)
x['1'] = '25'
print(x)

प्रिंट स्टेटमेंट से, डेटाफ़्रेम x बदलता नहीं दिखता है। मेरा प्रश्न: x['1'] = '25' क्या करता है, यदि कुछ भी हो?

6
DBless 14 जून 2019, 20:21

1 उत्तर

सबसे बढ़िया उत्तर

वास्तव में स्केलर और पुनरावृत्तियों को निर्दिष्ट करने के शब्दार्थ के बीच एक अंतर है (सोचें कंटेनर जैसे सूची जैसी वस्तुओं के रूप में सूचियां)।

विचार करना,

df = pd.DataFrame(columns=['1', '2'])                                                                                             
df                                                                                                                                  

Empty DataFrame
Columns: [1, 2]
Index: []

आपने एक खाली डेटाफ़्रेम को बिना किसी अनुक्रमणिका (कोई पंक्तियाँ नहीं) के परिभाषित किया है, लेकिन स्तंभों के लिए केवल एक स्कीमा निर्धारित किया है।

जब आप किसी कॉलम को स्केलर असाइन करते हैं, तो असाइनमेंट को सभी पंक्तियों में प्रसारित किया जाता है। इस मामले में, चूंकि कोई नहीं हैं, कुछ भी नहीं होता है:

df['1'] = 123
df

Empty DataFrame
Columns: [1, 2]
Index: []

हालाँकि, एक सूची की तरह चलने योग्य असाइन करना एक अलग कहानी है, क्योंकि पांडा इसके लिए नई पंक्तियाँ बनाएंगे:

df['1'] = [123]
df

     1    2
0  123  NaN

अब, यह समझने के लिए कि स्केलर असाइनमेंट कैसे काम करता है, एक समान खाली डेटाफ़्रेम पर विचार करें, लेकिन एक परिभाषित इंडेक्स के साथ:

df = pd.DataFrame(columns=['1', '2'], index=[0, 1])
df                                                                                                                                  

     1    2
0  NaN  NaN
1  NaN  NaN

यह अभी भी "खाली" है (वास्तव में नहीं), लेकिन अब हम स्केलर असाइन कर सकते हैं और असाइनमेंट प्रसारित किया जाता है,

df['1'] = 123
df                                                                                                                                  

     1    2
0  123  NaN
1  123  NaN

इस व्यवहार की तुलना पहले दिखाए गए व्यवहार से करें।

9
cs95 14 जून 2019, 20:49