कैसे ठीक करें: वैल्यूएरर: इंडेक्स में डुप्लिकेट प्रविष्टियाँ हैं, इन्हें दोबारा आकार नहीं दिया जा सकता
पांडा का उपयोग करते समय आपको एक त्रुटि का सामना करना पड़ सकता है:
ValueError : Index contains duplicate entries, cannot reshape
यह त्रुटि आम तौर पर तब होती है जब आप पिवोट() फ़ंक्शन का उपयोग करके पांडा डेटाफ़्रेम को दोबारा आकार देने का प्रयास करते हैं, लेकिन परिणामी डेटाफ़्रेम में कई मान होते हैं जो समान इंडेक्स मान साझा करते हैं।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस त्रुटि को कैसे ठीक किया जाए।
त्रुटि को पुन: उत्पन्न कैसे करें
मान लीजिए हमारे पास निम्नलिखित पांडा डेटाफ़्रेम हैं:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], ' points ': [5, 7, 7, 9, 4, 9, 9, 12]}) #view DataFrame df team position points 0 A G 5 1 A G 7 2 A F 7 3 A F 9 4 B G 4 5 B G 9 6 B F 9 7 B F 12
अब मान लीजिए कि हम टीम को पंक्तियों के रूप में और स्थिति को कॉलम के रूप में उपयोग करके डेटाफ़्रेम को घुमाने का प्रयास करते हैं:
#attempt to reshape DataFrame
df. pivot (index=' team ', columns=' position ', values=' points ')
ValueError : Index contains duplicate entries, cannot reshape
हमें एक त्रुटि प्राप्त होती है क्योंकि डेटाफ़्रेम में कई पंक्तियाँ टीम और स्थिति के लिए समान मान साझा करती हैं।
इसलिए जब हम डेटाफ़्रेम को दोबारा आकार देने का प्रयास करते हैं, तो पांडा को यह नहीं पता होता है कि परिणामी डेटाफ़्रेम के प्रत्येक सेल में कौन सा बिंदु मान प्रदर्शित करना है।
त्रुटि को कैसे ठीक करें
इस त्रुटि को ठीक करने के लिए, हम डेटा मानों को एक निश्चित तरीके से एकत्रित करने के लिए एक विशिष्ट aggfunc तर्क के साथ pivot_table() फ़ंक्शन का उपयोग कर सकते हैं।
उदाहरण के लिए, हम एक नया डेटाफ़्रेम बनाने के लिए pivot_table() का उपयोग कर सकते हैं जो टीम को पंक्तियों के रूप में, स्थिति को कॉलम के रूप में और डेटाफ़्रेम की कोशिकाओं में बिंदु मानों के योग का उपयोग करता है:
df. pivot_table (index=' team ', columns=' position ', values=' points ', aggfunc=' sum ')
position F G
team
At 16 12
B 21 13
ध्यान दें कि इस बार हमें कोई त्रुटि नहीं मिलेगी.
डेटाफ़्रेम में मान प्रत्येक टीम और स्थिति संयोजन के लिए अंकों का योग दिखाते हैं।
ध्यान दें कि हम aggfunc के लिए एक अलग मान का भी उपयोग कर सकते हैं, जैसे औसत:
df. pivot_table (index=' team ', columns=' position ', values=' points ', aggfunc=' mean ')
position F G
team
At 8.0 6.0
B 10.5 6.5
Pivot_table() फ़ंक्शन में aggfunc तर्क का उपयोग करके, हम किसी भी त्रुटि से बच सकते हैं।
नोट: आप यहां pivot_table() फ़ंक्शन के लिए संपूर्ण दस्तावेज़ पा सकते हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:
पंडों में KeyError को कैसे ठीक करें
कैसे ठीक करें: वैल्यूएरर: फ्लोट NaN को int में बदलने में असमर्थ
कैसे ठीक करें: वैल्यूएरर: ऑपरेंड को आकृतियों के साथ प्रसारित नहीं किया जा सका