python - "by = lambda x: lambda y: getattr(y, x)"是什么意思?

标签 python pandas lambda

有一个名为“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/

相关文章:

python - 如何重命名具有相同列名的数据框的列?

python - 选择每组中空值之前的行

c++ - 在 std::initializer_list 的构造函数的参数列表中折叠 vs "normal"折叠

Java8 FP if/else if/else 替换为 lambdas

Python Scrapy - 需要动态 HTML、div 和 span 内容

python - 在模块函数调用之间存储状态

python - 为什么 scipy.ststs.contingency.expected_freq 返回的预期频率不是我所期望的?

python - 使用python-pptx检查powerpoint中的图像是否具有装饰性

python - 与列表列中的项目关联的总金额

lambda - 在Scheme中使用map和lambda计算点积