2016-03-31 41 views
1

我想编写一个函数,通过函数输入来过滤DataFrame。在这里,我第一次尝试是:由变量pandas过滤

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

您能否提供一些样品数据和预期结果? – Alexander

回答

1

的一件事是:

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

这可能会更好地工作,为

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

但正如评论所说,有一些信息丢失(例如,什么是sampreach?)以及样本数据和预期输出,以更加明确地猜测发生了什么。

+0

非常感谢!这工作完美。 – Josh