【问题标题】:Understanding how to use lambda for panda's groupby.apply了解如何将 lambda 用于 panda 的 groupby.apply
【发布时间】:2021-04-30 01:16:21
【问题描述】:

有人能解释一下下面的未知函数 lambda 是如何知道使用列标签“年”的吗?我试图改编这篇文章中的一种解决方案:

这是我对该帖子感兴趣的答案的图像:

并希望使 lambda 适应我的以下代码:

report = pd.DataFrame([
    [2009, 10, 'Einstein'],
    [2010, 20, 'Einstein'],
    [2010, 30, 'Einstein'],
    [2009, 10, 'Planck'],
    [2009, 20, 'Planck'],
    [2009, 30, 'Planck']], 
    index = ['r','o','y','g','b','i'],
    columns = ['Year', 'Points', 'Username'])

grouped = report.groupby('Year')
grouped = grouped.apply(lambda a: a[:])

grouped

输出:

我正在尝试了解在这种情况下 lambda 的功能是什么。任何帮助将不胜感激。

【问题讨论】:

    标签: python


    【解决方案1】:

    lambda 函数在这里用作另一个函数内部的匿名函数。 lambda a : a[:] 是输入一个可迭代类型 a 并输出 a[:] 的函数:a 的每个元素。

    grouped = report.groupby('Year') 返回一个 groupby 对象,其中包含有关按年份组成的组的信息。

    grouped = grouped.apply(lambda a: a[:]) 将匿名函数 lambda 应用于您的 groupby 对象的每个“组”。

    因此,对于共享同一年的每一组数据,您将返回同一组的所有数据。 这就是您最终将数据框作为索引年份 (groupby('Year')) 的方式,其中包含每一年的所有相应数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 2017-07-19
      • 2017-08-13
      • 1970-01-01
      相关资源
      最近更新 更多