You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas groupby中用lambda适配任意变量列表

适配任意变量列表的分组聚合代码优化

你当前的代码通过硬编码变量名实现分组聚合,要适配任意variables_to_used列表,只需要修改lambda函数,利用DataFrame的列迭代能力自动处理所有指定变量,不用显式写每个变量名。

修改后的代码方案1(利用转置遍历列)

import pandas as pd

variables_to_used = ['Var1','Var2','Var3']
result = df.groupby('ZipCode')[variables_to_used].apply(
    lambda x: [list(col) for col in x.T]
).apply(pd.Series).to_numpy()

修改后的代码方案2(直接遍历列项)

result = df.groupby('ZipCode')[variables_to_used].apply(
    lambda x: [list(values) for _, values in x.iteritems()]
).apply(pd.Series).to_numpy()

原理说明

  • 方案1中,x.T将分组后的DataFrame转置,原来的每一列变成转置后的一行,遍历转置后的行就能依次获取每个变量的所有值,转成列表即可。
  • 方案2使用x.iteritems()直接迭代分组后DataFrame的列(返回(列名, 列值Series)的元组),只提取列值转成列表,逻辑更直观。

两种方案都能完全适配任意长度的variables_to_used列表,不管你后续新增或修改变量名,都不需要改动lambda函数里的内容,输出结构和原代码保持一致。

内容的提问来源于stack exchange,提问作者user150272

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 05:32:11