我有一个有90k行的大型excel文件,我只想将具有红色文本的行添加到dataframe (使用styleframe)。如果我使用一个5行的小excel文件,下面的代码可以工作,但当我尝试使用一个较大的文件时,数据框总是空的。
即使我删除了dropna,我也得到了一个只有Nans而没有red的样式框。
sf = StyleFrame.read_excel('myFile.xlsx', read_style=True, use_openpyxl_styles=False, usecols = ['COLUMN_1'], header = 2)。
def only_cells_with_red_text(cell):
return cell if cell.style.font_color in {utils.colors.red, 'FFFF0000'} else np.nan。
sf_2 = StyleFrame(sf.applymap(only_cells_with_red_text).dropna(axis=(0, 1), how='all'))我只希望将带有红色文本的单元格添加到dataframe
输出为空DataFrame
Columns: []
Index: []发布于 2019-06-18 02:56:19
这是StyleFrame中的一个错误。usecols和header kwarg会更改数据帧的形状(因为它们会导致pd.read_excel返回数据帧/工作表的子集)。然后,当read_excel应用样式时,它会将样式应用到错误的单元格(简单地说,它是根据单元格在原始整个工作表中的位置应用样式)。
现在,“变通办法”是删除usecols = ['COLUMN_1'], header=2 (当然,效率要低得多),然后再进行过滤,即
sf = sf[['COLUMN_1']]直到我(我是StyleFrame的作者之一)找到克服这个问题的方法。
https://stackoverflow.com/questions/56636775
复制相似问题