【问题标题】:trying to filter the rows that has 'Restaurants' in categories column试图过滤类别列中具有“餐厅”的行
【发布时间】:2019-08-14 17:03:51
【问题描述】:

我正在尝试使用 lambda 将行过滤为仅在类别列中包含餐厅的行。

我遇到了以下可以完成工作的代码。

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 部分

谢谢,

【问题讨论】:

  • 你不明白什么?如果您在浏览器中搜索“Python lambda 函数”,您会发现可以比我们在此处管理的更好地解释这一点的参考资料。如果您还使用“应用”搜索用途,您应该会找到一些示例。有什么不清楚的地方?

标签: python python-3.x lambda anonymous-function


【解决方案1】:

lambda 函数 (lambda x: 'Restaurants' in x) 完全等价于:

def lambdafunc(x):
    return "Restaurants" in x

如您所见,冒号左侧(:)表示输入,右侧表示返回值。就如此容易。有关 lambda 函数的更多信息,请参阅以下链接:https://docs.python.org/3/reference/expressions.html#lambda

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 2017-01-10
    相关资源
    最近更新 更多