将布尔选择器解析为函数

时间:2017-08-22 00:39:59

标签: python pandas

Python 3.6

我希望能够拥有一个为pandas DataFame采用布尔选择器的函数。 pandas使用[]切片语法,我似乎无法在函数中复制。

我想我想知道。

键入时会调用哪个函数?

import pandas as pd

df = pd.DataFrame(<data>)

result = df.<somecolumn>[<Boolean selector>]

我想编写一个执行此操作的函数:

def apply_selector(df, column, selector):
    return df.column.<a function>(selector) # <a function> represents a conceived function that pandas executes when the `[]` slice syntax is used with a Boolean selector

来自docs这是我想要通过一个功能实现的目标。

enter image description here

1 个答案:

答案 0 :(得分:3)

您可以尝试使用query实现您的功能:

df = pd.DataFrame({'A': [1,2,3,4,5], 'B': [2,2,2,4,4]})

def apply_selector(df, column, selector):
    return df.query(selector)[column]

apply_selector(df, 'A', 'A >= 3')

#2    3
#3    4
#4    5
#Name: A, dtype: int64