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

如何基于可变columns_list实现DataFrame的动态遍历操作

解决方案

你原有代码的问题是硬编码了3个列的索引,要适配动态长度的columns_list,只需要把固定的列调用改为遍历列表动态生成待zip的序列即可。

方案1:最小改动适配原有逻辑

直接修改循环内的代码,用列表推导式遍历所有目标列,再通过*解包传入zip:

for i in range(len(df)):
    s = tuple(zip(*[df[col].str.split(",")[i] for col in columns_list]))

方案2:优化执行效率(推荐)

原有写法每次循环都会重复对整列做str.split,数据量较大时性能损耗明显,可以先一次性完成所有列的拆分,再逐行处理:

# 先一次性完成所有目标列的拆分操作
split_result = [df[col].str.split(",") for col in columns_list]
for i in range(len(df)):
    s = tuple(zip(*[col_split[i] for col_split in split_result]))

注意事项

  • 需要保证同一行中所有目标列按逗号拆分后的元素数量一致,否则zip会自动截断到最短序列的长度
  • 如果需要保留不等长的所有元素,可以替换zip为itertools.zip_longest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:06:04