Hücre dize önceden tanımlanmış sette değerlerin herkes içeriyorsa satırlara filtre etmek istiyorum.Sütun değeri (dizgi) python kümesindeki herhangi bir değerden herhangi birini içeriyorsa, veri çerçeve satırları nasıl filtrelenir?
Örneğin, aşağıdaki dataframe için:
ids ids2 vals
0 a h a i 1
3 n i n h 4
Code:
ids ids2 vals
0 a h a i 1
1 b z n a 2
2 f z c a 3
3 n i n h 4
I ekstre satır ('i' kimlikleri sütununda 'h' ya sahip satırlar) aşağıdaki isteyen oluşturmak dataframe:
d = pd.DataFrame({'vals': [1, 2, 3, 4], 'ids': ['a h', 'b z', 'f z', 'n i'],'ids2': ['a i', 'n a', 'c a', 'n h']})
şimdiye kadar ne yaptım:
İşted[d['ids'].str.contains('h')|d['ids'].str.contains('i')]
önceden tanımlanmış set küçük ve içerdiğiharfe duyarlıdır. Bunu, büyük/küçük harf duyarsızlığıyla veya bazı listeyi kullanarak yapabileceğim bir yöntem var mı.
d[len(re.findall('h|i',d['ids'].str,re.IGNORECASE)) > 0]
ama bana TypeError: expected string or bytes-like object
veriyor: Bunu yaptığım çalıştı.
veya bu:
data[any(d['name'].str.contains(x) for x in ['h','i'])]
hata veriyor: KeyError: 'name'
birisi bana bu konuda yardımcı olabilir misiniz?
d[d['ids'].str.contains('h', case=False)|d['ids'].str.contains('i',case=False)]
Bu kesinlikle biraz dolambaçlı ama çalışacaktır:
Tamam: terimleri katılır. beyan Neden O zaman bile – harshit
şu anki çözüm mümkün olan tüm harfleri belirtmek sürece çalışacaktır @harshit or' tabloların 'çok yazmak zorunda kalacak' – harshit
net açıklama yukarıda hale getirilecek soruyu Düzenlendi daha büyük bir listede –