使用函数过滤熊猫数据框

时间:2020-08-09 14:00:24

标签: python pandas dataframe data-science

这个问题与我昨天发布的问题有关,可以在here上找到。

因此,我继续并将Jan所提供的解决方案应用于整个数据集。解决方法如下:

import re

def is_probably_english(row, threshold=0.90):
    regular_expression = re.compile(r'[-a-zA-Z0-9_ ]')
    ascii = [character for character in row['App'] if regular_expression.search(character)]
    quotient = len(ascii) / len(row['App'])
    passed = True if quotient >= threshold else False
    return passed

google_play_store_is_probably_english = google_play_store_no_duplicates.apply(is_probably_english, axis=1)

google_play_store_english = google_play_store_no_duplicates[google_play_store_is_probably_english]

因此,据我了解,我们正在使用is_probably_english函数过滤google_play_store_no_duplicates DataFrame并将结果(布尔值)存储到另一个DataFrame(google_play_store_is_probably_english)中。然后,使用google_play_store_is_probably_english过滤掉google_play_store_no_duplicates数据框架中的非英语应用,最终结果将存储在新的数据框架中。

这有意义吗,似乎是解决问题的一种好方法?有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

这是有道理的,我认为这是最好的方法,函数的结果如您所说是布尔值,然后将其应用于pd.Series时,最终得到一个{{1 }}的布尔值,通常称为布尔值掩码。当您想通过某些参数过滤行时,此概念在熊猫中非常有用。

Here是一篇有关熊猫中的布尔型蒙版的文章。