2017-11-08 4 views
-3

リストAの要素が別のリストBにあり、どのインデックスにあるのか確認しようとしています。私は彼らがパンダの構造ではないことを知っています。しかし、例の結果を得るためにこれらのリストを使用する方法があるはずです。私が間違っているなら私を訂正してください、私はパンダにもっと新しいです。次に、例えばリストAのメンバーがリストBにあり、パンダで適用されている場合

A = ['hi', 'I', 'Am', 'A', 'Test'] 
B = ['Sara', 'bla', 'bar', 'I', 'python', 'Test', 'Bye', 'hi'] 

、リストB.

に、1から要素の出現箇所を示し、0は全く発生を言わない

C = [0, 0, 0, 1, 0, 1, 0, 1] 

得リストCを得ますまだPython btwには新しい。 私はここで答えを見た、 Exampleしかし私は私の状況にこれを適用する方法を知らない。それは、パンダの機能が適用されることを示唆している。

私が調べたいオプションは、applyという名前の関数を使用するオプションです。この例では、はるかに高速で、大きなデータセットを使用しています。

+0

何これはパンダと関係があるのでしょうか?この宿題ですか?それらはリストであり、シリーズORデータフレームではありません。あなたは何を期待していますか? –

+0

しかし '1'は' B'には現れません。 'C'は' C = [0,1,0,1,0,0] 'でなければなりませんか? –

+0

何でも.. 'Cの[int(x in B)for A in x] ' –

答えて

0

おそらくisin + astypeを探しています:

ABは両方のシリーズです
B.isin(A).astype(int) 

0 0 
1 0 
2 0 
3 1 
4 0 
5 1 
6 0 
7 1 
dtype: int64 

あなたがサブストリング比較を実行したい場合は、str.findallを含むわずかに異なるソリューションが必要になります:

B.str.findall('|'.join(A), flags=re.I).str.len().clip(0, 1) 

0 1 
1 1 
2 1 
3 1 
4 0 
5 1 
6 0 
7 1 
dtype: int64 
+1

これはまさに私の言いたいことです。ありがとう! @COLDSPEED – nappingkid

関連する問題