कैसे ठीक करें: वैल्यूएरर: बेमेल कॉलम वाली पंक्ति को परिभाषित करने में असमर्थ


पांडा का उपयोग करते समय आपको एक त्रुटि का सामना करना पड़ सकता है:

 ValueError : cannot set a row with mismatched columns

यह त्रुटि तब होती है जब आप पांडा डेटाफ़्रेम में एक नई पंक्ति जोड़ने का प्रयास करते हैं लेकिन नई पंक्ति में मानों की संख्या मौजूदा डेटाफ़्रेम में कॉलम की संख्या से मेल नहीं खाती है।

निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस त्रुटि को कैसे ठीक किया जाए।

त्रुटि को पुन: उत्पन्न कैसे करें

मान लीजिए कि हम निम्नलिखित पांडा डेटाफ़्रेम बनाते हैं:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28, 22],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4, 8],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12, 9]})

#view DataFrame
df

	team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12
8 I 22 8 9

अब मान लीजिए कि हम डेटाफ़्रेम के अंत में एक नई पंक्ति जोड़ने का प्रयास करते हैं:

 #define new row to append
new_team = ['I', 30]

#append row to DataFrame
df. loc [ len (df)] = new_team

#view updated DataFrame
df

ValueError : cannot set a row with mismatched columns

हमें एक वैल्यूएरर प्राप्त होता है क्योंकि जिस नई पंक्ति को हम जोड़ने का प्रयास कर रहे हैं उसमें केवल दो मान हैं, लेकिन मौजूदा डेटाफ़्रेम में चार कॉलम हैं।

त्रुटि को कैसे ठीक करें

इस त्रुटि को ठीक करने का सबसे आसान तरीका डेटाफ़्रेम के अंत में नई लाइन जोड़ने के लिए एपेंड() फ़ंक्शन का उपयोग करना है, जो स्वचालित रूप से लापता मानों को NaN से भर देगा:

निम्नलिखित सिंटैक्स दिखाता है कि व्यवहार में इस फ़ंक्शन का उपयोग कैसे करें:

 #define new row to append
new = ['J', 30]

#append row to end of DataFrame
df = df. append ( pd.Series (new,index= df.columns [: len (new)]), ignore_index= True )

#view updated DataFrame
df

	team points assists rebounds
0 to 18 5.0 11.0
1 B 22 7.0 8.0
2 C 19 7.0 10.0
3 D 14 9.0 6.0
4 E 14 12.0 6.0
5 F 11 9.0 5.0
6 G 20 9.0 9.0
7:28 a.m. 4.0 12.0
8 I 22 8.0 9.0
9 D 30 NaN NaN

ध्यान दें कि हमें कोई वैल्यूएरर प्राप्त नहीं हो रहा है और डेटाफ़्रेम के अंत में नई लाइन जोड़ दी गई है।

यह भी ध्यान रखें कि नई पंक्ति में दो लुप्त मान केवल NaN मानों से भरे गए थे।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:

कैसे ठीक करें: कॉलम ओवरलैप होते हैं लेकिन कोई प्रत्यय निर्दिष्ट नहीं किया जाता है
कैसे ठीक करें: ऑब्जेक्ट ‘numpy.ndarray’ में ‘append’ विशेषता नहीं है
कैसे ठीक करें: यदि आप सभी अदिश मानों का उपयोग करते हैं, तो आपको एक सूचकांक पारित करने की आवश्यकता है

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *