Python 2.7 使用Python删除现有Excel工作表中的整个空行

Python 2.7 使用Python删除现有Excel工作表中的整个空行,python-2.7,xlrd,xlwt,xlutils,Python 2.7,Xlrd,Xlwt,Xlutils,如何使用Python从现有Excel工作表中删除整个空行 我需要的解决方案不会: 包括读取整个文件并在不删除行的情况下重写它。 有什么直接的解决办法吗?我是用熊猫包实现的 如果使用内存不是问题,您可以使用额外的数据帧来实现这一点 import pandas as pd #Read from Excel xl= pd.ExcelFile("test.xls") dfs = xl.parse(xl.sheet_names[0]) df1 = dfs[dfs['Sal'] == 1000] df1

如何使用Python从现有Excel工作表中删除整个空行

我需要的解决方案不会: 包括读取整个文件并在不删除行的情况下重写它。

有什么直接的解决办法吗?

我是用熊猫包实现的


如果使用内存不是问题,您可以使用额外的数据帧来实现这一点

import pandas as pd

#Read from Excel
xl= pd.ExcelFile("test.xls")

dfs = xl.parse(xl.sheet_names[0])
df1 = dfs[dfs['Sal'] == 1000]
df1 = df1[df1['Message']=="abc"]

ph_no = df1['Number']

print df1

要删除Excel行,例如第5行,第1列无关紧要:

sh.Cells(5,1).EntireRow.Delete()
要删除一系列Excel行,请说第5行到第20行

sh.Range(sh.Cells(5,1),sh.Cells(20,1)).EntireRow.Delete()

哇,所有的帽子?你试过什么?这只是一个空行还是有多个空行?我想准确地执行excel的“删除行”操作,在该操作中,行被删除,其他行被上移。如果我可以从excel工作表中删除一行,那就可以了。看起来此解决方案只适用于一列,但如果有多列呢?此外,此行给出了一个类型错误
TypeError:invalid type comparison
。是的,您是对的。此语句不能应用于多列。如果我们想删除名为“abc”且工资为2000的行,我们不能使用此语句。但是,如果我们想删除一个名为“abc”或Salary为2000的行,我们可以通过反复编写该语句,然后最终将DataFrame转换为Excel来完成。
sh.Range(sh.Cells(5,1),sh.Cells(20,1)).EntireRow.Delete()