python - 从 Pandas 中的红色列、绿色列和蓝色列创建十六进制列

标签 python pandas hex rgb

我有一个包含 16,777,216 行的 pandas 数据框。这是介于 0 和 255 之间的三列(红色、绿色和蓝色)的所有可能组合。

我想在此数据框中添加一列,该列是该行三个值的十六进制代码。我认为像下面这样的东西是最好的解决方案:

df["Hex"] = "#{0:02x}{1:02x}{2:02x}".format(df["Red"],df["Green"],df["Blue"])

但是,您似乎无法将系列传递给字符串格式方法。

有没有办法解决这个问题?此外,考虑到数据框相当大,这是否是最有效的方法?

最佳答案

可以使用.apply,例如:

df = pd.DataFrame(np.random.randint(256, size=(10, 3)), columns=['Red', 'Green', 'Blue'])

例如:

   Red  Green  Blue
0  125    100   174
1  107    247   235
2  230    254    33
3   91    107    33
4  209    220   232
5  175     10    47
6  120     66    44
7   21    136   254
8  226    237    32
9   89     57    71

然后:

df.apply('#{Red:02X}{Green:02X}{Blue:02X}'.format_map, axis=1)

给你:

0    #7D64AE
1    #6BF7EB
2    #E6FE21
3    #5B6B21
4    #D1DCE8
5    #AF0A2F
6    #78422C
7    #1588FE
8    #E2ED20
9    #593947
dtype: object

关于python - 从 Pandas 中的红色列、绿色列和蓝色列创建十六进制列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53869644/

相关文章:

python - 在 pandas 中创建一个包含自上次事件以来的时间的新列

python - 如何从 Pandas 的地址中提取公寓

c# - C# 和 Java 中的十六进制到字节数组给出不同的结果

python - 无法避免 Cython 在 Python2.7 而不是 Python3.x 中编译外部 C 模块

python - 测试元组是否具有所有不同的元素

python - 我有一个嵌套列表,但我想在嵌套列表内添加一个嵌套列表

python - 使用 Pandas DataFrame 计算每日 yield

python - 使用带有大 csv 的 pandas 结构(迭代和 block 大小)

c++ - 十六进制的 4 字节日期时间转换为可读

将十进制转换为十六进制时一次仅考虑 4 位