J'aimerais voir si une chaîne particulière existe dans une colonne particulière de mon cadre de données.
Je reçois l'erreur
ValueError: la valeur de vérité d'une série est ambiguë. Utilisez a.empty, a.bool (), a.item (), a.any () ou 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"
a['Names'].str.contains('Mel')
renvoie un vecteur indicateur des valeurs booléennes de taille len(BabyDataSet)
Par conséquent, vous pouvez utiliser
mel_count=a['Names'].str.contains('Mel').sum()
if mel_count>0:
print ("There are {m} Mels".format(m=mel_count))
Ou any()
, si le nombre d'enregistrements correspondant à votre requête ne vous intéresse pas
if a['Names'].str.contains('Mel').any():
print ("Mel is there")
Vous devriez utiliser 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')
vous donne une série de valeurs bool
In [100]: a['Names'].str.contains('Mel')
Out[100]:
0 False
1 False
2 False
3 False
4 True
Name: Names, dtype: bool