dataframe df
मैं डेटा फ्रेम को एक स्ट्रिंग से तुलना नहीं कर सकता! लेकिन मैं अपने पक्षांतरित तुलना कर सकते हैं
df = pd.DataFrame({
1: [1, 2],
2: ['a', 3],
3: [None, 7]
})
df
1 2 3
0 1 a NaN
1 2 3 7.0
जब मैं एक तार के साथ तुलना
df == 'a'
TypeError: Could not compare ['a'] with block values
हालांकि, पक्षांतरित लेने से समस्या का समाधान करने पर विचार ?!
(df.T == 'a').T
1 2 3
0 False True False
1 False False False
इस त्रुटि क्या है? क्या मैं ऐसा कुछ कर सकता हूं जिसके साथ मैं अपना डेटा फ्रेम बना रहा हूं? ट्रांसपोज़ की तुलना करने के बारे में क्या अलग है?
इसका मूल रूप से मतलब है कि आपके पास मिश्रित डाइटप्स हैं (इसलिए यह एक ही numpy सरणी में सभी मानों को नहीं रख सकता है - इसे ब्लॉक का उपयोग करने की आवश्यकता है)। जब आप ट्रांसफर लेते हैं तो दोनों कॉलम ऑब्जेक्ट बन जाते हैं ताकि यह तुलना कर सके। – ayhan
हाँ, मैं एक ही निष्कर्ष पर आया ... क्या आप 'df.astype (str) .eq ('a')' या 'df.select_dtypes (['object']) का उपयोग नहीं कर सकते हैं। Eq ('a') '? – MaxU
मैं अभी भी उलझन में क्यों हूं, मुझे समझ में नहीं आता कि ये जवाब क्यों नहीं हैं। (-: – piRSquared