Saya telah melakukan pencarian dan tidak tahu cara memfilter dataframe df["col"].str.contains(word)
, namun saya bertanya-tanya apakah ada cara untuk melakukan yang sebaliknya: filter dataframe dengan pujian set itu. misalnya: untuk efek !(df["col"].str.contains(word))
.
Bisakah ini dilakukan melalui DataFrame
metode?
re.complies
dan berkata pada diri sendiri saya akan membahasnya nanti. Sepertinya saya menyesuaikan pencarian dan itu hanya seperti yang Anda katakandf[~df.col.str.contains(word)]
mengembalikan salinan kerangka data asli dengan baris yang dikecualikan yang cocok dengan kata tersebut.Saya mengalami masalah dengan simbol not (~) juga, jadi inilah cara lain dari utas StackOverflow lainnya :
sumber
df[df["col1"].str.contains('this'|'that')==False and df["col2"].str.contains('foo'|'bar')==True]
? Terima kasih!df = df[~df["col"].str.contains('\|')]
Anda dapat menggunakan Terapkan dan Lambda untuk memilih baris di mana kolom berisi apa pun dalam daftar. Untuk skenario Anda:
sumber
Saya harus menyingkirkan nilai NULL sebelum menggunakan perintah yang direkomendasikan oleh Andy di atas. Sebuah contoh:
Sekarang jalankan perintah:
Saya mendapatkan kesalahan berikut:
Saya menyingkirkan nilai NULL menggunakan dropna () atau fillna () terlebih dahulu dan coba lagi perintah itu tanpa masalah.
sumber
~df["second"].astype(str).str.contains(word)
untuk memaksa konversistr
. Lihat stackoverflow.com/questions/43568760/…Saya harap jawabannya sudah diposting
Saya menambahkan kerangka kerja untuk menemukan beberapa kata dan meniadakan kata-kata dari dataFrame .
Di sini
'word1','word2','word3','word4'
= daftar pola untuk dicaridf
= DataFramecolumn_a
= Nama kolom dari dari DataFrame dfsumber
Tambahan untuk jawaban nanselm2, Anda dapat menggunakan
0
alih-alihFalse
:sumber
NaN