首页 > 解决方案 > python pandas动态查询传入函数

问题描述

我有带有字符串列的数据框。我想在某些功能中使用它的一部分。要使用的部分由传递给函数的条件定义。

def myfunc(condition):
    tmp_df = df[condition].copy()

    #doing something else wit tmp_df

    return some_result

我的问题是:

  1. 如何传递字符串列的条件?例如:

    df.str_column.str.len()>10

  2. 当我需要使用所有数据框时,如何传递空条件?

我找到了数字列的解决方案,但是如何使用字符串?

标签: pandasfunctionfiltering

解决方案


我认为有必要创建布尔掩码:

#boolean mask
cond = df.str_column.str.len()>10
#return all values
cond = [True] * len(df)

myfunc(cond)

推荐阅读