データフレーム内の特定の列に特定の文字列が存在するかどうかを確認したいと思います。
エラーが発生しています
ValueError:シリーズの真理値はあいまいです。 a.empty、a.bool()、a.item()、a.any()、または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')
は、サイズ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')
は一連のブール値を提供します
In [100]: a['Names'].str.contains('Mel')
Out[100]:
0 False
1 False
2 False
3 False
4 True
Name: Names, dtype: bool