我想编写一个按函数输入过滤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
设置为要过滤的值的名称,或者更好的是要过滤到的值范围。
提前感谢您的帮助!
答案 0 :(得分:1)
有一点突出并可能导致您看到的错误:
sampreach = sample[sample.key in [value]]
可能效果更好
sampreach = sample[sample[key].isin(value)]
但正如评论中所建议的,缺少一些信息(例如sampreach
是什么?)以及样本数据和预期输出,以便对正在发生的事情做出更明智的猜测。