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这是我想要通过一个功能实现的目标。
答案 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