2015-06-19 21 views
14

में है या नहीं, मैं देखना चाहता हूं कि मेरे डेटाफ्रेम के भीतर किसी विशेष कॉलम में कोई विशेष स्ट्रिंग मौजूद है या नहीं।जांचें कि स्ट्रिंग एक पांडा डेटाफ्रेम

मैं त्रुटि

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 

BabyDataSet = [('Bob', 968), ('Jessica', 155), ('Mary', 77), ('John', 578), ('Mel', 973)] 

a = pd.DataFrame(data=BabyDataSet, columns=['Names', 'Births']) 

if a['Names'].str.contains('Mel'): 
    print "Mel is there" 

उत्तर

19

हो रही हैlen(BabyDataSet)

इसलिए आकार के बूलियन मूल्यों का एक संकेतक वेक्टर वापस आ जाएगी, तो आप

mel_count=a['Names'].str.contains('Mel').sum() 
if mel_count>0: 
    print ("There are {m} Mels".format(m=mel_count)) 

या any() उपयोग कर सकते हैं, अगर आप परवाह नहीं है कि कितने रिकॉर्ड आपकी क्वेरी से मिलान

if a['Names'].str.contains('Mel').any(): 
    print ("Mel is there") 
10

आप का उपयोग करना चाहिए any()

In [98]: a['Names'].str.contains('Mel').any() 
Out[98]: True 

In [99]: if a['Names'].str.contains('Mel').any(): 
    ....:  print "Mel is there" 
    ....: 
Mel is there 

a['Names'].str.contains('Mel') आप bool की एक श्रृंखला देता है महत्व देता

In [100]: a['Names'].str.contains('Mel') 
Out[100]: 
0 False 
1 False 
2 False 
3 False 
4  True 
Name: Names, dtype: bool 
+0

कौन क्या तुम हो, जॉन जॉल्ट? –

संबंधित मुद्दे