कैसे ठीक करें: लेखन त्रुटि: -: 'str' और 'int' के लिए असमर्थित ऑपरेंड प्रकार
पायथन का उपयोग करते समय आपके सामने एक त्रुटि आ सकती है:
TypeError : unsupported operand type(s) for -: 'str' and 'int'
यह त्रुटि तब होती है जब आप एक स्ट्रिंग वेरिएबल और एक संख्यात्मक वेरिएबल के साथ घटाव करने का प्रयास करते हैं।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस त्रुटि को कैसे हल किया जाए।
त्रुटि को पुन: उत्पन्न कैसे करें
मान लीजिए हमारे पास निम्नलिखित पांडा डेटाफ़्रेम हैं:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
' points_for ': ['18', '22', '19', '14', '14', '11', '20', '28'],
' points_against ': [5, 7, 17, 22, 12, 9, 9, 4]})
#view DataFrame
print (df)
team points_for points_against
0 to 18 5
1 B 22 7
2 C 19 17
3 D 14 22
4 E 14 12
5 F 11 9
6 G 20 9
7:28 a.m. 4
#view data type of each column
print ( df.dtypes )
team object
points_for object
points_against int64
dtype:object
अब मान लीजिए कि हम पॉइंट्स_फॉर कॉलम से पॉइंट्स_अगेंस्ट कॉलम को घटाने का प्रयास करते हैं:
#attempt to perform subtraction
df[' diff '] = df. points_for - df. points_against
TypeError : unsupported operand type(s) for -: 'str' and 'int'
हमें एक टाइप एरर प्राप्त होता है क्योंकि पॉइंट्स_फॉर कॉलम एक स्ट्रिंग है जबकि पॉइंट्स_अगेंस्ट कॉलम संख्यात्मक है।
घटाव करने के लिए, दोनों कॉलम संख्यात्मक होने चाहिए।
त्रुटि को कैसे ठीक करें
इस त्रुटि को हल करने के लिए, हम घटाव करने से पहले पॉइंट_फॉर कॉलम को पूर्णांक में बदलने के लिए .astype(int) का उपयोग कर सकते हैं:
#convert points_for column to integer
df[' points_for '] = df[' points_for ']. astype (int)
#perform subtraction
df[' diff '] = df. points_for - df. points_against
#view updated DataFrame
print (df)
team points_for points_against diff
0 A 18 5 13
1 B 22 7 15
2 C 19 17 2
3 D 14 22 -8
4 E 14 12 2
5 F 11 9 2
6 G 20 9 11
7:28 4 24
#view data type of each column
print ( df.dtypes )
team object
points_for int32
points_against int64
diff int64
dtype:object
ध्यान दें कि हमें कोई त्रुटि नहीं मिल रही है क्योंकि घटाव के लिए हमने जिन दो कॉलमों का उपयोग किया है वे संख्यात्मक कॉलम हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:
पंडों में KeyError को कैसे ठीक करें
कैसे ठीक करें: वैल्यूएरर: फ्लोट NaN को int में बदलने में असमर्थ
कैसे ठीक करें: वैल्यूएरर: ऑपरेंड को आकृतियों के साथ प्रसारित नहीं किया जा सका