如何在函数中包含 pandas 比较运算符?

How to include pandas comparison operators in the function?

假设我有以下数据

import pandas as pd 

d = {'index': [0, 1, 2], 'a': [10, 8, 6], 'b': [4, 2, 6],}

data_frame  = pd.DataFrame(data=d).set_index('index')

现在我要做的是,根据“b”列的值过滤此数据,可以这样说:

new_df = data_frame[data_frame['b']!=4]
new_df1 = data_frame[data_frame['b']==4]

我想要做的,而不是上面的这个方法,是编写函数,我还可以指示它应该使用什么样的比较运算符。像这样


def slice(df, column_name):
    df_new = df[df[column_name]!=4]
    return df_new

new_df2 = slice(df=data_frame, column_name='b')

上述函数只对数据进行!=操作。我想要的是 !=== 都以某种方式在上面的函数中定义,并且当我使用该函数时,我可以理想地指示使用哪个。

如果我的问题需要更详细的说明,请告诉我

您可以向您的函数添加一个布尔参数:

def slice(df, column_name, equality=True):
    if equality:
        df_new = df[df[column_name]==4]
    else:
        df_new = df[df[column_name]!=4]
    return df_new

new_df2 = slice(df=data_frame, column_name='b', equality=True)

顺便说一句,slice 是一个 built-in python 函数,因此重命名为其他名称可能是个好主意。