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

Python中for循环仅执行1次,如何修改实现代码重复运行4次?

问题原因分析

你的代码实际上已经完整执行了4次循环,只是两处逻辑问题导致你误以为仅执行了1次:

  • 每次循环读取的都是固定的D:/input_1.txt文件,4次处理的源数据完全一致
  • 每次循环都把结果写入同一个D:/Output.txt文件,后3次的执行结果直接覆盖了前一次的输出,最终你看到的只是最后一次循环的输出结果,和执行1次的效果没有差异
修改方案

根据你的实际需求选择对应修改方式:

方案1:需要输出4份独立的结果文件

修改输出文件的命名规则,加入循环变量i做区分,避免文件覆盖:

import pandas as pd

for i in range(4):
    input_1 = pd.read_csv('D:/input_1.txt', sep='\t')
    input_pivot = input_1.pivot_table(index = ['Year','Month'], columns=['Gender'], 
                                      aggfunc={
                                          'Total_sales':'sum',
                                          'Total_profit':'mean'
                                      })
    # 输出文件名添加序号,4次循环会分别生成Output_0.txt到Output_3.txt
    input_pivot.to_csv(f'D:/Output_{i}.txt', sep='\t', index=False)

注:你原代码里的Tatal_sales、Tatal_sprofit存在拼写错误,建议核对原始字段名修改,避免后续统计报错。

方案2:需要每次循环处理不同的输入文件

如果你的4次循环分别对应4个不同的输入文件(比如input_1.txt到input_4.txt),同步修改输入文件的读取路径即可:

import pandas as pd

for i in range(4):
    # 读取对应序号的输入文件,i从0开始所以加1对应1~4的文件名序号
    input_1 = pd.read_csv(f'D:/input_{i+1}.txt', sep='\t')
    input_pivot = input_1.pivot_table(index = ['Year','Month'], columns=['Gender'], 
                                      aggfunc={
                                          'Total_sales':'sum',
                                          'Total_profit':'mean'
                                      })
    input_pivot.to_csv(f'D:/Output_{i+1}.txt', sep='\t', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:45:09