Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用pandas删除工作簿中多个工作表上的行和列?_Python_Python 3.x_Excel_Pandas - Fatal编程技术网

Python 如何使用pandas删除工作簿中多个工作表上的行和列?

Python 如何使用pandas删除工作簿中多个工作表上的行和列?,python,python-3.x,excel,pandas,Python,Python 3.x,Excel,Pandas,我有一个文件input\u file\u new.xsl,我需要删除所有完全空的行和列。我想出了这个函数: def DeleteEmptyColumns(filename): import pandas as pd new_loc = `input_file_new.xsl` df = pd.read_excel(new_loc, 'Person') df.drop('Application_ID', 1,inplace=True) writer = p

我有一个文件
input\u file\u new.xsl
,我需要删除所有完全空的行和列。我想出了这个函数:

def DeleteEmptyColumns(filename):
    import pandas as pd
    new_loc = `input_file_new.xsl`
    df = pd.read_excel(new_loc, 'Person')

    df.drop('Application_ID', 1,inplace=True)
    writer = pd.ExcelWriter('output.xlsx')

    df.to_excel(writer,'Sheet1')
    writer.save()
它确实正确地删除了列,但只删除了第一张工作表上的列,然后将该工作表保存为一个完整的新工作表。删除所有空列后,我需要将每张工作表保留在同一文档上。有没有更简单的方法?我查看了Win32 COM,但我希望能够使用Pandas实现这一点


编辑:这是excel的屏幕截图。所以你可以在Person选项卡上看到我需要删除A列,因为它是完全空的。我需要为每个选项卡执行此操作。

此代码应执行以下操作:

df = pd.read_excel("input_file_new.xlsx", header=None, sheet_name=None)

writer = pd.ExcelWriter('output_file.xlsx', engine='openpyxl') 
for key in df:
    sheet= df[key].dropna(how="all").dropna(1,how="all")
    sheet.to_excel(writer, key,index=False, header=False )
    
writer.save()
for循环用于迭代工作簿中的每个工作表。然后删除只包含带有“Nan”的单元格的列和行,生成的表存储在一个称为原始表的工作表中,但存储在一个新文件中


read\u excel
sheet\u name
设置为
None
将把工作簿的每一页都读入字典(称为df)。

我不清楚问题出在哪里。是否要从所有工作表中删除列?我需要从每个工作表中删除所有空行和空列,好的,然后将其存储在新文件中,或覆盖原始文件中的每个工作表?任何一个都将为空,您的意思是只包含NaN?