根据列的颜色

时间:2017-07-01 14:24:23

标签: python excel pandas

我有一个xlsx文件,其中包含各种颜色的列。

我想用pandas在python中只读取这个excel的白色列,但是我没有关于热点的线索。

我能够将完整的excel读入数据框,但后来我错过了有关列着色的信息,我不知道要删除哪些列,哪些不是。

2 个答案:

答案 0 :(得分:6)

(免责声明:我是我建议的图书馆的作者之一)

使用StyleFrame(包装pandas),您可以将excel文件读入数据帧而不会丢失样式数据。

考虑以下表格:

enter image description here

以下代码:

from StyleFrame import StyleFrame, utils

sf = StyleFrame.read_excel('test.xlsx', read_style=True)
print(sf)

#          b  p                  y
#     0  nan  3             1000.0
#     1  3.0  4                2.0
#     2  4.0  5  42902.72396704039

sf = sf[[col for col in sf.columns
         if col.style.fill.fgColor.rgb in ('FFFFFFFF', utils.colors.white)]]
         # "white" can be represented as 'FFFFFFFF' or
         # '00FFFFFF' (which is what utils.colors.white is set to)
print(sf)

#          b
#    0   nan
#    1   3.0
#    2   4.0

答案 1 :(得分:0)

这不能在熊猫中完成。您将需要使用其他库来读取xlsx文件并确定哪些列是白色的。我建议使用xlrd库。

然后您的脚本将按照以下步骤操作:

  1. 打开xlsx文件
  2. 读取并过滤数据(您可以访问单元格颜色)并保存结果
  3. 创建pandas dataframe