我有一个包含许多列的Excel文件。必须根据单元格特定列的颜色来分离数据。
例如,在上图中,应根据列A1 / A2的颜色在单个文件中提取最后3行。同样,可以根据B1 / B2中单元格的颜色在其他文件中提取前四行。
有没有比以下代码更好的解决方案/不使用熊猫?
import numpy as np
import pandas as pd
from StyleFrame import StyleFrame, utils
sf = StyleFrame.read_excel('sample_name.xlsx', read_style=True, use_openpyxl_styles=False)
def only_cells_with_red_text(cell):
return cell if cell.style.font_color in {utils.colors.red, 'FFFF0000'} else np.nan
sf_1 = sf[['A1']]
sf_2 = StyleFrame(sf_1.applymap(only_cells_with_red_text).dropna(axis=(0, 1), how='all'))
df=pd.DataFrame(sf.data_df)
df_2=df.iloc[sf_2.index]
print(df_2)