Pandas合并Excel文件时出现空行的技术求助:如何删除第6、7行空行(仅合并values1与values2时出现)
解决Pandas合并Excel文件时出现的空行问题
嘿,这个空行问题我之前也碰到过!从你的情况来看,合并values1和values2时出现空行,基本是因为这两个DataFrame对应的原Excel文件里本身就藏着空白行,被Pandas读进来了,而values3的文件刚好没这个问题。下面给你两种解决思路,直接套用就行:
思路一:读取文件时就过滤空行
在读取每个Excel文件的时候,直接删掉所有列都是空值的行,从源头避免空行进入合并流程:
import pandas as pd ListOri = 'Blocked_Persons_List_original.xls' NG = 'NG.xlsx' MB = 'MB.xlsx' # 读取时直接剔除全空行 df1 = pd.read_excel(ListOri).dropna(how='all') df2 = pd.read_excel(NG).dropna(how='all') df3 = pd.read_excel(MB).dropna(how='all') values1 = df1[["Unique ID","Name","Street of residence","City of residence","Country of residence","Date of birth","Place of birth","Country of birth","Citizenship","Account number/ IBAN","BIC Code","Source","Notice","Reserve 1","Reserve 2","Amount EURO","Currency"]] values2 = df2[["Name","Account number/ IBAN","BIC Code","Notice"]] values3 = df3[["Account number/ IBAN","BIC Code","Notice","Reserve 1","Reserve 2"]] dataframes = [values1, values2, values3] join = pd.concat(dataframes, ignore_index=True) # 保险起见,合并后再检查一次全空行 join = join.dropna(how='all') # 加上index=False,避免输出文件多一列无用的索引 join.to_excel("output.xlsx", index=False)
思路二:合并完成后统一清理空行
如果不想修改读取步骤,也可以在合并完所有DataFrame后,一次性过滤掉空行:
# 你的原有合并代码 dataframes = [values1, values2, values3] join = pd.concat(dataframes, ignore_index=True) # 核心:删除所有列都是空值的行 join = join.dropna(how='all') # 输出时去掉索引列 join.to_excel("output.xlsx", index=False)
特殊情况处理
如果你的空行不是完全空白,而是某些单元格里只有空格(看起来是空的但实际是空格字符),可以先把这些空格替换成空值再过滤:
join = pd.concat(dataframes, ignore_index=True) # 把所有仅含空格的单元格替换为空值 join = join.replace(r'^\s*$', pd.NA, regex=True) # 再删除全空行 join = join.dropna(how='all') join.to_excel("output.xlsx", index=False)
这样处理后,输出文件里的第6、7行空行应该就彻底消失啦!
内容的提问来源于stack exchange,提问作者ivan.stackoverflow
相关产品推荐
相关产品推荐

