Python循环只打印数据帧的最后一个循环作为输出到Excel中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python循环只打印数据帧的最后一个循环作为输出到Excel中相关的知识,希望对你有一定的参考价值。

我一直被这个问题所困扰(很可能是非常简单的),但我的输出到Excel的结果只打印了最后循环中的值。我相信这与缩进有关,我试过将数值从for循环中删除,但一直没有成功。这里有一些虚拟代码来帮助理解这个问题。

#dummy code

#reads each file in folder, runs through a bunch of functions, and prints output in console
import os,glob
import csv
import pandas as pd
filename ='path to folder'
for filename in glob.glob(os.path.join(folder_path, '*.txt')):
    with open(filename, 'r') as f:
        text = f.read()
        data =function1(file= filename)
        data= function2(file= filename)
        data = function3(file= filename)
        final =pd.DataFrame(data)
        print(final)
        final.to_excel('output.xlsx')

控制台的输出是这样的,是正确的,也是我想导出为csv的。

0  some text here ...
1  more text...
2  clear text...
3  final data...
                                                   0
0  yes no...
1  does lots...
2  happy sunflower ...
3  ate food...

                                                  0
0  final data ...
1  apple strawberry...
2  different dataset...
3  dinne meals ...

如果有任何建议,我将不胜感激 谢谢你的建议。

答案

你在for循环的每次迭代中都覆盖了output.csv。 请尝试这样做

import pandas as pd
#use enumerate to have a counter variable at each index
for filename, n in enumerate(glob.glob(os.path.join(folder_path, '*.txt'))):
    with open(filename, 'r') as f:
        #your logic
        #this will be overwritten on next pass of for loop
        final = pd.DataFrame(data)
        #write to file with appended index- avoids file being overwritten on next pass
        final.to_csv("output_%d.csv" % n)

现在,你的数据帧将以output_x.csv的形式保存。 例如,如果找到三个文件,你将看到以下文件:output_1.csv, output_2.csv, output_3.csv。

以上是关于Python循环只打印数据帧的最后一个循环作为输出到Excel中的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 只输出最后循环数据

循环只打印最后一个值

芹菜任务设置与视频帧的内存缓存作为python中的循环缓冲区策略

从 for 循环打印时出现问题

python中for循环前面换行最后不换行

Python“for in”循环打印列表中的最后一项