पंडों में कैसे ठीक करें: किसी श्रृंखला का सत्य मान अस्पष्ट है


पाइथॉन में आपके सामने एक त्रुटि आ सकती है:

 ValueError : The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(),
            a.any() or a.all().

यह त्रुटि आम तौर पर तब होती है जब आप पांडा डेटाफ़्रेम को शब्दों का उपयोग करके फ़िल्टर करने का प्रयास करते हैं और या वर्णों का उपयोग करने के बजाय & और | संचालक.

यह ट्यूटोरियल बताता है कि व्यवहार में इस त्रुटि को कैसे हल किया जाए।

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

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

 import pandas as pd

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

#view DataFrame
print (df)

  team points assists rebounds
0 A 18 5 11
1 to 22 7 8
2 A 19 7 10
3 A 14 9 6
4 B 14 12 6
5 B 11 9 5
6 B 20 9 9
7 B 28 4 12

अब मान लीजिए कि हम उन पंक्तियों को फ़िल्टर करने का प्रयास कर रहे हैं जहां टीम “ए” के बराबर है और अंक 20 से कम हैं:

 #attempt to filter DataFrame
df[(df[' team '] == ' A ') and (df[' points '] < 20 )]

ValueError : The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(),
            a.any() or a.all().

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

 #attempt to filter DataFrame
df[(df[' team '] == ' A ') or (df[' points '] < 20 )]

ValueError : The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(),
            a.any() or a.all().

दोनों परिदृश्यों में, हमें एक त्रुटि प्राप्त होती है जो हमें बताती है कि किसी श्रृंखला का सत्य मान अस्पष्ट है।

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

फ़िल्टर करते समय इस त्रुटि से बचने के लिए, हमें यह सुनिश्चित करना होगा कि हम & और | का उपयोग करें तत्व. संचालक.

उदाहरण के लिए, हम उन पंक्तियों को फ़िल्टर करने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं जहां टीम “ए” के बराबर है और अंक 20 से कम हैं:

 #filter DataFrame
df[(df[' team '] == ' A ') & (df[' points '] < 20 )]

team points assists rebounds
0 A 18 5 11
2 A 19 7 10
3 A 14 9 6

या हम उन पंक्तियों को फ़िल्टर करने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं जहां टीम “ए” के बराबर है या अंक 20 से कम हैं:

 #filter DataFrame
df[(df[' team '] == ' A ') | (df[' points '] < 20 )]

        team points assists rebounds
0 A 18 5 11
1 to 22 7 8
2 A 19 7 10
3 A 14 9 6
4 B 14 12 6
5 B 11 9 5

दोनों परिदृश्यों में हमें कोई त्रुटि प्राप्त नहीं हुई क्योंकि हमने & और | का उपयोग किया था तत्व. संचालक.

ध्यान दें : पांडा डेटाफ़्रेम को कई स्थितियों के आधार पर फ़िल्टर करते समय प्रत्येक व्यक्तिगत स्थिति के आसपास कोष्ठक शामिल करना महत्वपूर्ण है, अन्यथा आपको एक त्रुटि प्राप्त होगी।

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

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

कैसे ठीक करें: “पांडा” मॉड्यूल में “डेटाफ़्रेम” विशेषता नहीं है
पंडों में कैसे ठीक करें: SettingWithCopyWarning
पंडों में कैसे ठीक करें: लेखन त्रुटि: प्लॉट करने के लिए कोई संख्यात्मक डेटा नहीं

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

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