簡體   English   中英

從Pandas Dataframe中條件提取數據

[英]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.lowerstr.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM