どの列に別の列が含まれている行をフィルタリングできますか? たとえば、DTが2つの列A、Bを持つ場合、Bcontains(A)で行をフィルタリングできますか? BにDTからのすべてのAからのA値が1つの行に含まれているだけでなく、パンダ、列に別の列が含まれている行をフィルタリングする
A B 'lol' 'lolec' 'ram' 'rambo' 'ki' 'pio' Result: A B 'lol' 'lolec' 'ram' 'rambo'
どの列に別の列が含まれている行をフィルタリングできますか? たとえば、DTが2つの列A、Bを持つ場合、Bcontains(A)で行をフィルタリングできますか? BにDTからのすべてのAからのA値が1つの行に含まれているだけでなく、パンダ、列に別の列が含まれている行をフィルタリングする
A B 'lol' 'lolec' 'ram' 'rambo' 'ki' 'pio' Result: A B 'lol' 'lolec' 'ram' 'rambo'
あなたはapply
とin
によって作成されたマスクでboolean indexing
を使用することができ、行ごとの必要性フィルタ列A
とB
場合:
#if necessary strip ' in all values
df = df.apply(lambda x: x.str.strip("'"))
#df = df.applymap(lambda x: x.strip("'"))
print (df.apply(lambda x: x.A in x.B, axis=1))
0 True
1 True
2 False
dtype: bool
df = df[df.apply(lambda x: x.A in x.B, axis=1)]
print (df)
A B
0 lol lolec
1 ram rambo
- 入力DataFrame
が変更された:
print (df)
A B
0 lol pio
1 ram rambo
2 ki lolec
print (df[df.apply(lambda x: x.A in x.B, axis=1)])
A B
1 ram rambo
print (df[df['B'].str.contains("|".join(df['A']))])
A B
1 ram rambo
2 ki lolec
ありがとう、これは便利です。私はエンコーディングにほとんど問題がありません。 Python 2.7ではエンコーディングが常に大きな問題でした。 –
python 3に切り替えることはできますか?私は6ヶ月前に切り替えました。それは良い判断でした。 – jezrael
私はそれが時間だと思う:) –
:他のシリーズのコンテンツから
OR
選択を意味正規表現|
文字を使用して、サブストリングの各々に合わせてスワップ? – jezrael結果は2行目になります。 –
ありがとう、私の答えを参照してください。 – jezrael