使用 pandas 在 excel sheet 中过滤条件格式
Filter on conditional formatting in excel sheet using pandas
我有一个 excel 文件,其中某列的某些行具有红色的条件格式。
所以我的文件看起来像这样
现在我必须在 "College" 列上应用过滤器以删除所有具有红色背景的行。
并将其保存回文件。
我为此写的代码是:
dataFrame_file = pd.read_excel(util.comcastFile2Path(), sheet_name='Sheet1') //comcastFile2Path() gives path of file
def only_cells_with_red_background(cell):
return cell if cell.style.bg_color in {utils.colors.red, 'FFFF0000'} else np.nan
df=dataFrame_file.style.applymap(only_cells_with_red_background,subset=['College'])
util.mergeFile(dataFrame_file,df,util.comcastFile2Path)
我的 util class 合并和保存文件的方法如下所示
def mergeFile(dataFrame_file, delete_frame, comcastFileName):
dataFrame_file = dataFrame_file.merge(delete_frame, how='left', indicator=True).query(
'_merge == "left_only"').drop('_merge', 1)
saveFile(dataFrame_file,comcastFileName)
当我这样做时,我得到的错误是:
TypeError: Can only merge Series or DataFrame objects, a <class 'pandas.io.formats.style.Styler'> was passed
我怎样才能更进一步?
提前致谢。
pd.read_excel
不从 Excel 文件中读取样式。
既然你用 styleframe 标记了问题,我相信你打算用 StyleFrame.read_excel(util.comcastFile2Path(), sheet_name='Sheet1', read_style=True)
阅读文件。
那你也不用df.merge
了。您可以 select 没有红色背景的行并保存新的 StyleFrame 对象:
from StyleFrame import StyleFrame, utils
def no_red_background_cell(cell):
return cell if cell.style.bg_color not in {utils.colors.red, 'FFFF0000'} else np.nan
sf = StyleFrame.read_excel(util.comcastFile2Path(), sheet_name='Sheet1', read_style=True)
sf = StyleFrame(sf.applymap(no_red_background_cell).dropna(axis=(0, 1), how='all'))
sf.to_excel('output.xlsx').save()
我有一个 excel 文件,其中某列的某些行具有红色的条件格式。 所以我的文件看起来像这样
现在我必须在 "College" 列上应用过滤器以删除所有具有红色背景的行。
并将其保存回文件。
我为此写的代码是:
dataFrame_file = pd.read_excel(util.comcastFile2Path(), sheet_name='Sheet1') //comcastFile2Path() gives path of file
def only_cells_with_red_background(cell):
return cell if cell.style.bg_color in {utils.colors.red, 'FFFF0000'} else np.nan
df=dataFrame_file.style.applymap(only_cells_with_red_background,subset=['College'])
util.mergeFile(dataFrame_file,df,util.comcastFile2Path)
我的 util class 合并和保存文件的方法如下所示
def mergeFile(dataFrame_file, delete_frame, comcastFileName):
dataFrame_file = dataFrame_file.merge(delete_frame, how='left', indicator=True).query(
'_merge == "left_only"').drop('_merge', 1)
saveFile(dataFrame_file,comcastFileName)
当我这样做时,我得到的错误是:
TypeError: Can only merge Series or DataFrame objects, a <class 'pandas.io.formats.style.Styler'> was passed
我怎样才能更进一步?
提前致谢。
pd.read_excel
不从 Excel 文件中读取样式。
既然你用 styleframe 标记了问题,我相信你打算用 StyleFrame.read_excel(util.comcastFile2Path(), sheet_name='Sheet1', read_style=True)
阅读文件。
那你也不用df.merge
了。您可以 select 没有红色背景的行并保存新的 StyleFrame 对象:
from StyleFrame import StyleFrame, utils
def no_red_background_cell(cell):
return cell if cell.style.bg_color not in {utils.colors.red, 'FFFF0000'} else np.nan
sf = StyleFrame.read_excel(util.comcastFile2Path(), sheet_name='Sheet1', read_style=True)
sf = StyleFrame(sf.applymap(no_red_background_cell).dropna(axis=(0, 1), how='all'))
sf.to_excel('output.xlsx').save()