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

如何从pandas groupby操作得到的DataFrame中提取City索引列表

问题解答

1. 你的认知正确性验证

你的认知是基本正确的,pandas的DataFrameGroupBy可迭代对象每次迭代都会返回一个二元组:

  • 第一个元素为当前分组的分组键值,也就是你这里的City名称
  • 第二个元素为该分组对应的子数据集,包含当前City对应的所有行数据
    所以写for city, df in groupby_result的逻辑是完全成立的,每次迭代会自动把城市名赋值给city,对应子数据集赋值给df。

2. 多变量循环报错的原因

这个是Python基础的元组解包规则导致的:groupby迭代返回的永远只有2个元素的元组,你尝试用city,df,df1,df2...三个及以上的变量去接收返回值,左边变量数量和右边返回的元素数量不匹配,自然会触发解包报错。
另外你提到type(df)返回list的情况不符合pandas默认行为,正常返回的第二个元素类型是pandas.DataFrame,如果出现list类型建议检查你生成groupby对象的前置代码是否做了额外的转换处理。

3. 提取所有City名称列表的最简方法

不需要循环遍历,直接调用groupby对象的groups属性即可快速拿到:
city_list = list(your_groupby_obj.groups.keys())
如果还没做groupby操作,也可以直接从原DataFrame提取:
city_list = df['City'].unique().tolist()


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:48:03