有人可以解释下面的未知函数 lambda 是如何知道使用列标签“Year”的吗?我试图调整这篇文章中的一个解决方案:
并希望将 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 函数。任何帮助将不胜感激。
答案 0 :(得分:0)
这里的 lambda 函数用作另一个函数内部的匿名函数。
lambda a : a[:]
是输入可迭代类型 a 并输出 a[:]
:a 的每个元素的函数。
grouped = report.groupby('Year')
返回一个 groupby 对象,其中包含有关按年份形成的组的信息。
grouped = grouped.apply(lambda a: a[:])
将匿名函数 lambda 应用于 groupby 对象的每个“组”。
因此,对于共享同一年的每组数据,您将返回同一组的所有数据。 这就是您最终将数据框作为索引年份 (groupby('Year')) 的方式,其中包含每年所有相应数据。