場合は、テストするためにベクトル化str.contains
を使用することができます文字列は各行に存在/含まれています:
In [262]:
testData['value'].str.contains(testData['value'][0])
Out[262]:
0 True
1 False
2 False
Name: value, dtype: bool
任意の行で、その後any
を使用します。
In [264]:
testData['value'].str.contains(testData['value'][0]).any()
Out[264]:
True
OKあなたの最後の質問に対処するために:
def __contains__(self, key):
"""True if the key is in the info axis"""
return key in self._info_axis
私たちが何を_info_axis
を見れば、実際にある:pd.Series.__contains__
が実装されているので、これがある
In [270]:
testData['value'][0] in testData['value']
Out[270]:
False
を:
In [269]:
testData['value']._info_axis
Out[269]:
RangeIndex(start=0, stop=3, step=1)
その後、我々は我々がtestData['value']
で'abc'
を行うときに私たちは本当に'abc'
はそれがFalse
例返す理由であるインデックスに実際にあるかどうかをテストしている見ることができます:
In [271]:
testData=pd.DataFrame({'value':['abc','cde','fgh']}, index=[0, 'turkey',2])
testData
Out[271]:
value
0 abc
turkey cde
2 fgh
In [272]:
'turkey' in testData['value']
Out[272]:
True
を私たちは、それが戻っている見ることができますTrue
インデックスに 'turkey'があるかどうかをテスト中です
データはサンプルdfに個別の文字列を含むシリーズとして保存されますが、実際のdfデータは実際には各行の文字列のリストですか?それは根本的に異なるので – EdChum
@EdChumの回答は良いです。元のエラーを修正するには、testData ['value']。values 'の最後の行が' testData ['value'] [0]になるようにtestData ['value']の値をチェックするだけです。 True –
@EdChumを入手してください。私の例のデータは、私の問題をより正確に説明していると思います。あなたが言及した根本的な違いは私が見落としたものかもしれません。 – cone001