for循环在升级Pandas / Numpy后不起作用

问题描述 投票:1回答:1

我正在运行一个python脚本,其基本思想是扫描目录中的文本文件,例如:

files = glob.glob("*.txt")
files
-------
output:
['name_6-076_01.txt',
 'name_6-077_00.txt',
 'name_6-077_01.txt',
 'name_6-078_00.txt',
 'name_6-078_01.txt',
 'name_6-079_00.txt']

[请注意*077*.txt它有两个与_00 and _01相同的条目*078*.txt(我有一些文件列表,甚至更多)。

我正在尝试将这些文件(来自*077*)放到一个excel工作表中(考虑导出到excel)。

lane_spot = ['Spot_6-076_01', 'Spot_6-077_00', 'Spot_6-077_01', 'Spot_6-078_00', 'Spot_6-078_01', 'Spot_6-079_00']

spotlanes()是一个返回数据帧的函数。

writer = pd.ExcelWriter(f'Summary_{datetime.now().strftime("%Y-%m-%d_%H%M%S")}.xlsx')

我在这方面很成功。但是升级到Pandas(从0.23.4到1.0.3)已经破坏了一切。

下面是对我有用的代码,没有任何问题:

for i in range(len(files)):
    try:
        if (files[i][:-7] == files[i-1][:-7]):
            sheet = lane_spot[i-1]
            lane = spotlanes(files[i])
            lane[f'{lane_spot[i]}'] = [f'{lane_spot[i]}', f'{lane_spot[i]}']
            lane.set_index(f'{lane_spot[i]}',append=True, inplace=True)
            lane.index = lane.index.swaplevel(0,1)
            lane = lane.rename_axis(['Spot','Method'])
            lane.to_excel(writer,sheet_name=f'{sheet}',index=True, startrow=3)
            writer.save()
        else:
            sheet = lane_spot[i]
            lane = spotlanes(files[i])
            lane[f'{lane_spot[i]}'] = [f'{lane_spot[i]}', f'{lane_spot[i]}']
            lane.set_index(f'{lane_spot[i]}',append=True, inplace=True)
            lane.index = lane.index.swaplevel(0,1)
            lane = lane.rename_axis(['Spot','Method'])
            lane.to_excel(writer,sheet_name=f'{sheet}',index=True)
            writer.save()
    except IndexError:
        print("EOF")

在外部并根据需要测试了相同的代码:

In [14]: for i in range(len(files)):
    ...:     try:
    ...:         if (files[i][:-7] == files[i-1][:-7]):
    ...:             print(f'sheet{i-1} appended', lane_spot[i])
    ...:         else:
    ...:             print(f'sheet{i}', lane_spot[i])
    ...:
    ...:     except IndexError:
    ...:         print("fo")
    ...:
    ...:
sheet0 Spot_6-076_01
sheet1 Spot_6-077_00
sheet1 appended Spot_6-077_01
sheet3 Spot_6-078_00
sheet3 appended Spot_6-078_01
sheet5 Spot_6-079_00
sheet5 appended Spot_6-079_01
sheet7 Spot_6-080_00
sheet7 appended Spot_6-080_01
sheet9 Spot_7-008_00
sheet9 appended Spot_7-008_01
sheet11 Spot_7-009_00

因此,基本上,在第一次迭代后,它没有将任何内容写入excel工作表。工作正常,床单也越来越好。你能告诉我excel引擎是否有功能,我有openpyxlxlsxwriter,尽管我没有同时使用它们。

我需要将输出输出到具有相应excel工作表中内容的excel文件中>

我正在运行一个python脚本,其基本思想是扫描目录中的文本文件,例如:files = glob.glob(“ *。txt”)files -------输出:['name_6-076_01.txt ','name_6-077_00.txt','name_6 -...

python excel pandas openpyxl xlsxwriter
1个回答
0
投票

我想出了问题。

© www.soinside.com 2019 - 2024. All rights reserved.