大Pandas数据帧的条件提取

2024-09-30 06:14:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的数据框,看起来像:

enter image description here

          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

如何使用此函数从数据帧中提取记录? 请帮助我了解如何在这个熊猫系列中使用df.apply(map())函数,如果可能的话,如何使用列表理解获得相同的函数


Tags: 数据函数infornamescount记录sentence
2条回答

我们可以使用一个简单的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

或者使用^{}

import re
df[df.Names.str.findall('[aeiou]',flags=re.I).str.len().gt(5)]

          Names
0   Alexi Laiho
1  Jari Maenpaa

相关问题 更多 >

    热门问题