Me gustaría ver si una cadena en particular existe en una columna en particular dentro de mi dataframe.
Estoy recibiendo el error
ValueError: El valor de verdad de una serie es ambiguo. Utilice a.empty, a.bool (), a.item (), a.any () o 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')
devolverá un vector indicador de valores booleanos de tamaño len(BabyDataSet)
Por lo tanto, puede utilizar
mel_count=a['Names'].str.contains('Mel').sum() if mel_count>0: print ("There are {m} Mels".format(m=mel_count))
O any()
, si no le importa cuántos registros coinciden con su consulta
if a['Names'].str.contains('Mel').any(): print ("Mel is there")
Debes usar 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')
le da una serie de valores bool
In [100]: a['Names'].str.contains('Mel') Out[100]: 0 False 1 False 2 False 3 False 4 True Name: Names, dtype: bool