如何在Python循环中每运行100次后修改DataFrame列索引变量?
解决方案
核心思路
每100次运行对应一列,直接通过当前运行次数计算批次索引就能自动切换列:用当前运行次数 // 100得到列索引i,这样每完成100次运行,i就自动加1,直到覆盖100列(索引从0到99)。
代码实现
场景1:逐次循环10000次
如果是在单循环里执行10000次操作,直接用循环变量计算列索引:
total_runs = 10000 batch_size = 100 for run_idx in range(total_runs): # 计算当前对应的列索引 i = run_idx // batch_size # 获取当前批次的epsilon_hat列 current_epsilon = epsilon_hat.iloc[:, i] # 这里写你的业务逻辑,比如处理d_test_hats等 # ...
场景2:按批次批量处理
如果是先处理完100次再切换列,可以直接遍历列索引:
batch_size = 100 total_batches = 100 # 10000 / 100 = 100 for i in range(total_batches): current_epsilon = epsilon_hat.iloc[:, i] # 执行该批次的100次操作 for _ in range(batch_size): # 业务逻辑代码 # ...
关于字典排序报错的补充
既然你已经明确报错原因是字典无法直接用<比较,这里给两个实用解决方法:
- 按字典的某个键排序:
# 假设每个字典有'target_key'键,按该键值排序 sorted_dicts = sorted(d_test_hats, key=lambda x: x['target_key']) - 自定义排序规则:根据需求修改
key函数即可,比如按多个键组合排序。
内容的提问来源于stack exchange,提问作者Guus Bouwens
相关产品推荐
相关产品推荐

