python - 从熊猫中的红色列,绿色列和蓝色列创建十六进制列
问题描述
我有一个包含 16,777,216 行的熊猫数据框。这是 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
推荐阅读
- ubuntu-14.04 - Ubuntu上的Instana代理一班轮安装错误
- android - android Fragment中的导航流程
- windows - HTTP 代理后面的 Windows 上的 Minikube
- ggplot2 - 将默认颜色集成到个性化主题 ggplot
- javascript - 使用 AutoNumeric,js 时在 Salesforce 社区中出现“未捕获的类型错误:非法调用引发”
- reactjs - 如何使用 redux 从服务器获取数据?
- r - fs::dir_tree() - 排序目录树
- java - 为什么编译器禁止初始化数组?
- azure-web-app-service - 如何使用 ARM 多次部署 Azure Web App Application Insights 扩展
- java - 如何在 rebase 方法的集合中映射planningId 注释?