Как отфильтровать данные Excel по цвету ячейки в Python? - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть файл Excel с большим количеством столбцов. Данные должны быть разделены на основе цвета столбца, специфичного для ячеек.

enter image description here

Например, на изображении выше, последние 3 строки должны быть извлеченыв одном файле на основе цвета столбца A1 / A2. Точно так же первые четыре строки могут быть извлечены в другом файле на основе цвета ячеек в 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)
...