颜色必须是 aRGB 十六进制值?

问题描述 投票:0回答:4

所以我之前为污染数据集运行了一些代码,并且代码运行得很好。现在,我收到此错误: 颜色必须是 aRGB 十六进制值

我唯一的代码行如下:

pollution_jawn = pd.read_excel('ObservationData_irkfioc copy.xlsx')

我不知道问题是什么,我什至尝试从我的 jupyterhub 目录中删除这个文件并上传它,但即使这样也不起作用。

python pandas data-cleaning argb
4个回答
3
投票

正如另一个答案所提到的,解决方法是在

engine='xlrd'
中指定
pd.read_excel
。但是,要使其正常工作,xlrd 必须为 1.2.0(或更低版本)版本。

要下载特定版本(使用 anaconda),请在终端中输入

conda install -c anaconda xlrd=1.2.0

完成后,这应该可以工作(请注意,您将得到一个

FutureWarning
,因为此版本的 xlrd 已弃用:

pollution_jawn = pd.read_excel('ObservationData_irkfioc copy.xlsx', engine='xlrd')

2
投票

.xlsx 文件可能保存在旧版本的 Excel 中。对我来说有效的方法是简单地在新版本的 Excel 中打开 .xlsx 文件,然后再次保存。之后就没有再出现这个错误了。


1
投票

我更新到 pandas 1.2.3 后也遇到了类似的问题。对我有用的是指定

pd.read_excel(path_to_xlsx, engine='xlrd')

我怀疑我加载的 xlsx 文件在某处使用了较旧的 xls 标准,因为选项“

xlrd
支持旧式 Excel 文件 (.xls)”(来自 docs


0
投票

有类似的问题,但找到了简单的解决方案,只需在 openpyxl/styles/colors.py 中的 RGB 类中重新分配方法 set,捕获“颜色必须是 aRGB 十六进制值”的错误并设置另一种颜色,如白色:

from openpyxl.styles.colors import WHITE, RGB
__old_rgb_set__ = RGB.__set__

def __rgb_set_fixed__(self, instance, value):
    try:
        __old_rgb_set__(self, instance, value)
    except ValueError as e:
        if e.args[0] == 'Colors must be aRGB hex values':
            __old_rgb_set__(self, instance, WHITE)  # Change color here

 RGB.__set__ = __rgb_set_fixed__

希望它能帮助别人

© www.soinside.com 2019 - 2024. All rights reserved.