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

如何无需指定每个城市按UF列拆分Pandas DataFrame?

按城市列拆分Pandas DataFrame的更优方法

当然有更简洁高效的实现,直接用Pandas内置的groupby方法就行,完全不用手动处理去重和循环判断:

方法1:获取分组对象(最灵活)

直接按"UF"列分组,得到一个可迭代的分组对象,后续可以按需提取数据:

city_groups = people.groupby("UF")

想要单独取某城市的数据时,用get_group方法:

# 提取SP城市的DataFrame
sp_data = city_groups.get_group("SP")

方法2:生成和原代码一样的列表格式

一行代码就能生成所有城市DataFrame组成的列表:

temporary = [group for _, group in people.groupby("UF")]

这里的_是占位符,用来接收分组的城市名称(如果不需要存城市名的话)。

方法3:生成城市名对应DataFrame的字典(更实用)

如果需要快速通过城市名定位数据,转成字典会更方便:

city_data_dict = {city: group for city, group in people.groupby("UF")}

之后直接通过city_data_dict["RJ"]就能拿到对应城市的人员数据。

对比你原来的代码,groupby是Pandas专门为分组场景优化的方法,内部处理逻辑更高效,尤其是数据量较大时,性能优势会很明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 18:13:21