有一个名为“subset”的dataFrame,代码如下。 pd是pandas的昵称。我搞不懂 by = lambda x: lambda y: getattr(y, x)
的意思。
pivot = pd.pivot_table(subset, values='count', rows=['date'], cols=['sample'], fill_value=0)
by = lambda x: lambda y: getattr(y, x)
grouped = pivot.groupby([by('year'),by('month')]).sum()
最佳答案
by = lambda x: lambda y: getattr(y, x)
等同于以下内容:
def by(x):
def getter(y):
return getattr(y, x)
return getter
getattr(a, b)
从名为 a
的对象中获取名为 b
的属性。
因此 by('bar')
返回一个函数,该函数返回对象的属性 'bar'
。
by('bar')(foo)
表示 getattr(foo, 'bar')
大致是 foo.bar
。
如果这没有帮助,请告诉我们您在哪个部分仍有问题。
关于python - "by = lambda x: lambda y: getattr(y, x)"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39031255/