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?