Python 正在尝试筛选具有';餐厅';在“类别”列中
我正在尝试使用lambdas将行过滤到只有在categories列中包含餐厅的行 我遇到了下面的一段代码,可以完成这项工作Python 正在尝试筛选具有';餐厅';在“类别”列中,python,python-3.x,lambda,anonymous-function,Python,Python 3.x,Lambda,Anonymous Function,我正在尝试使用lambdas将行过滤到只有在categories列中包含餐厅的行 我遇到了下面的一段代码,可以完成这项工作 business = business.loc[business['categories'].apply(lambda x: 'Restaurants' in x), :] 但是,我很难理解lambda函数。我可以在没有lambda的情况下运行代码 def process(data): mask = [] for i in range(10):
business = business.loc[business['categories'].apply(lambda x: 'Restaurants' in x), :]
但是,我很难理解lambda函数。我可以在没有lambda的情况下运行代码
def process(data):
mask = []
for i in range(10):
if 'Restaurants' in data[i]:
mask.append(True)
else:
mask.append(False)
return mask
business_updated = process(business['categories'])
business['categories'][business_updated]
我使用函数得到了期望的结果,但我不理解lambda部分
谢谢
lambda函数(lambda x:x
中的“餐厅”)与此完全等效:
def lambdafunc(x):
return "Restaurants" in x
如您所见,冒号左侧(
:
)代表输入,右侧代表返回值。就这么简单。有关lambda函数的更多信息,请参阅以下链接:您不了解什么?如果您在浏览器中搜索“PythonLambda函数”,您会发现可以更好地解释这一点的参考资料。如果您还使用“apply”搜索用法,您应该可以找到一些示例。有什么不清楚的?