技术文摘
不使用Pandas快速分组二维列表的方法
2025-01-09 00:44:49 小编
在数据处理过程中,我们常常会遇到需要对二维列表进行分组的情况。通常,大家可能会想到使用Pandas库来轻松实现这一操作。然而,在某些场景下,比如对性能要求极高,或者运行环境不支持Pandas库的情况下,掌握不使用Pandas快速分组二维列表的方法就显得尤为重要。
我们可以利用Python内置的字典数据结构来实现分组功能。假设有一个二维列表,其中每个子列表包含两个元素,第一个元素是分组的依据,第二个元素是需要分组的数据。
实现的核心思路是遍历二维列表,以分组依据作为字典的键,将对应的数据添加到以该键为标识的列表中。具体代码如下:
data = [['A', 1], ['A', 2], ['B', 3], ['B', 4]]
grouped = {}
for item in data:
key = item[0]
value = item[1]
if key not in grouped:
grouped[key] = []
grouped[key].append(value)
print(grouped)
这段代码首先创建了一个空字典grouped。接着,遍历二维列表data,对于每个子列表,提取其第一个元素作为键key,第二个元素作为值value。如果键key不在字典grouped中,就创建一个以该键为标识的空列表;然后将值value添加到对应键的列表中。最终,字典grouped中就实现了按照第一个元素对二维列表的分组。
另外,collections模块中的defaultdict也能简化上述代码。defaultdict会在访问不存在的键时自动创建一个默认值,这样我们就无需手动检查键是否存在。代码示例如下:
from collections import defaultdict
data = [['A', 1], ['A', 2], ['B', 3], ['B', 4]]
grouped = defaultdict(list)
for item in data:
key = item[0]
value = item[1]
grouped[key].append(value)
print(dict(grouped))
通过使用defaultdict,代码更加简洁明了。这种不依赖Pandas库对二维列表进行分组的方法,在资源受限或追求极致性能的场景下,能发挥出很大的优势,帮助开发者高效地完成数据处理任务。
- allfiles.vbs 呈现子目录内所有文件的修改时间、大小、文件名及扩展名等
- VBS Ping 的两种实现方式
- VBS 浏览本地文件的三种方式及完整路径获取
- Office 批量激活命令工具 ospp 全面解析
- VBS 实现文件或文件夹路径输入文件的所有绝对路径遍历(附源码)
- VBS 进程的判断代码
- VBS 实现 Excel 工作表遍历的代码
- 实现拖拽文件显示路径的 VBS 代码
- Windows 主机网络接口利用率监测的 VBS 代码
- 如何利用 VBS 获取指定目录的文件列表
- 使用 VBS 打开当前脚本所在文件夹
- Windows 磁盘 IO 利用率监控 VBS 脚本
- 通过 VBS 实现文本的循环读取
- VBS 实现指定文件复制至指定目录
- VBS 中日期(时间)格式化函数的代码