按变量pandas过滤

时间:2016-03-31 21:00:54

标签: python python-3.x pandas dataframe

我想编写一个按函数输入过滤DataFrame的函数。我在这里的第一次尝试是:

def Breakdown(file, key = None, value = None):
    if key is not None:
        if sampreach in ['s', 'S', 'sample', 'Sample']:
            sampreach = sample[sample.key in [value]]
            CountName = 'Total Count'
        elif sampreach in ['r', 'R', 'reachable', 'Reachable']:
            sampreach = reachable[reachable.key in [value]]
            CountName = 'Reachable Count'
    else:
        if sampreach in ['s', 'S', 'sample', 'Sample']:
            sampreach = sample
            CountName = 'Total Count'
        elif sampreach in ['r', 'R', 'reachable', 'Reachable']:
            sampreach = reachable
            CountName = 'Reachable Count'

但是我收到了以下错误:

AttributeError: 'DataFrame' object has no attribute 'key'

目标是能够将key设置为等于列标题的名称,将value设置为要过滤的值的名称,或者更好的是要过滤到的值范围。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

有一点突出并可能导致您看到的错误:

sampreach = sample[sample.key in [value]]

可能效果更好

sampreach = sample[sample[key].isin(value)]

但正如评论中所建议的,缺少一些信息(例如sampreach是什么?)以及样本数据和预期输出,以便对正在发生的事情做出更明智的猜测。