2016-03-22 32 views
0

私はこのようなデータセットを持っています。1つの文字列にPythonの別の部分文字列が含まれていないか確認してください。

'name'のセル値が 'title'のセル値に存在する場合、 'True'となるフラグを使用したいと思います。私はこの

df['flag'] = (df.name).isin(df.title) 

のようなものを使用しています。しかし、これは「偽」として、すべてのフラグを与え、whereaas最初の二つのフラグが

どのようにすることができ「真」でなければなりません

そうでない場合は、「偽」これの世話をする?他の条件

+3

'isin'は何ですか? – poke

答えて

1

ようにする必要がありこれも使用することができます。

criteria = lambda row : row['name'] in row['title'] 
df['flag'] = df.apply(criteria, axis =1) 
0

あなたは、コード1行を使用していますdf['flag'] = True if df.name in df.title else False を使用することができます。部分文字列の使用を検索するには

df.title.str.contains(df.name) 
+2

デニスの答えが示しているように、すでに解決しているものについては、値を指定する必要はありません(この場合、TrueとFalse)。それらの値に変換する。 – TigerhawkT3

+0

私はこれがより代表的だと思った:) –

+0

これは 'print( 'alice' if usr_name == 'alice' else 'bob' if usr_name == 'bob' else 'charlie' if usr_name == 'charlie' else ...) '。つまり、いいえ。 – TigerhawkT3

0

isinは、あなたが名前のリスト内nameを検索したい場合にのみ動作するかどう

0

このようなサンプル。

if df[name] in df[title]: 
         return true 
0

あなたのコードは、この

df['flag'] = (df.name in df.title) 
関連する問題