![](/img/trans.png)
[英]extraction of data from oracle into python pandas dataframe very slow
[英]Conditional Extraction of Data from Pandas Dataframe
我有一個簡單的DataFrame,如下所示:
Names
0 Alexi Laiho
1 Jari Maenpaa
2 Kirk Hammett
3 Antti Kokko
4 Yngwie Malmsteen
5 Petri Lindroos
我想要檢索名稱中只有5個以上元音的記錄。
為此,我做了功能:
def vowcount(sentence=[]):
count=0
vow='aeiouAEIOU'
for i in sentence:
for j in i:
if j in vow:
count+=1
return count
如何使用此功能從DataFrame中提取記錄? 請幫助我理解如何在這個Pandas系列上使用df.apply(map())函數以及如果可能的話如何使用列表理解來獲得相同的功能。
我們可以使用一個簡單的regex
語句並使用str.lower
, str.count
和.query
:
m = df['Names'].str.lower().str.count(r'[aeiou]')
df = df.query('@m > 5')
或者我們可以使用re.I
忽略大小寫:
import re
m = df['Names'].str.count(r'[aeiou]', flags = re.I)
df = df.query('@m > 5')
產量
Names
0 Alexi Laiho
1 Jari Maenpaa
另外還有findall
:
import re
df[df.Names.str.findall('[aeiou]',flags=re.I).str.len().gt(5)]
Names
0 Alexi Laiho
1 Jari Maenpaa
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.