Проверьте, находится ли строка в фрейме данных pandas



Я хотел бы посмотреть, существует ли определенная строка в определенном столбце В моем фрейме данных.



Я получаю ошибку




ValueError: значение истинности ряда неоднозначно. Использовать.пустые,
а.типа bool(), а.пункт(), а.любой() или.все().




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"
527   2  

2 ответов:

a['Names'].str.contains('Mel') вернет вектор индикатора булевых значений размера 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")

Вы должны использовать 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

Comments

    Ничего не найдено.