Проверьте, находится ли строка в фрейме данных 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"
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')дает вам ряд значений boolIn [100]: a['Names'].str.contains('Mel') Out[100]: 0 False 1 False 2 False 3 False 4 True Name: Names, dtype: bool
Comments