使用Python / Pandas将未知的表格长度打印到CSV文件

问题描述

我有要使用熊猫打印到csv文件的表格。该表是从其他excel文件中提取的。我的问题是表的长度是未知的。我应该如何将此表打印到csv文件中以显示所有内容,而不是仅显示在一行上

for x in ABC:
    print()
    print(f"{x}:")
    try:
        df = pd.read_csv(x + "/File.csv")
        df_filter= df[['A','B','C',"D","E"]]
        if df_filter['D'].str.contains('Fail').any():
            noSC= df_filter[df_filter.DUTId != 'SC_INFO']
            finalTable= noSC[noSC.D == 'Fail']
            if finalTable.empty:
                print("Did not complete")
                sheet1['A16'] = finalTable
            else:
                filterTable= finalTable[['A',"E"]]
                fullfinalTable = filterTable.to_string()
                print(fullfinalTable)
        else:
            print("Run Successful")
    except FileNotFoundError:
        print("File does not exist")

我知道sheet1['A16'] = finalTable是错误的,但是我不确定该怎么做。它确实输出表,但仅在A16上输出,因此它是一长行。无论如何,将未知表格格式化为新的Excel?

解决方法

试试看。

from pathlib import Path
import pandas as pd

dir_path = r"yourFolderPath"
files_list = [str(p) for p in dir_path.glob("**/*.csv")]
if files_list:
    source_dfs = [pd.read_csv(file_) for file_ in files_list]
    df = pd.concat(source_dfs,ignore_index=True)
    df = df[['A','B','C',"D","E","DUTId"]]
    if df['D'].str.contains('Fail').any():
        df = df_filter[df_filter.DUTId != 'SC_INFO']
        finalTable = df[df.D == 'Fail']
        if finalTable.empty:
            print("Did not complete. Dataframe is empty.")
        else:
            print("Dataframe written to .csv")
            finalTable = finalTable[['A','E']]
            finalTable.to_csv(dir_path + r"/finaltable.csv")
else:
    print(f"No .csv files in {dir_path}")

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...