首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将熊猫dataframe列中的字节转换为十六进制

将熊猫dataframe列中的字节转换为十六进制
EN

Stack Overflow用户
提问于 2022-11-30 13:34:35
回答 1查看 46关注 0票数 1

当熊猫读取read_sql字节列时会出现问题。如果您通过DBeaver查看sql,那么字节列显示的不同,但如果您通过read_sql查看它,就会发现熊猫将值转换为十六进制。

例如,熊猫显示列值-

代码语言:javascript
复制
b'\x80\xbc\x10`K\xa8\x95\xd8\x11\xe5K\xf9\xe7\xd7\x8cq'

我需要-

代码语言:javascript
复制
0x80BC10604BA895D811E54BF9E7D78C71

如果我在sql中使用

代码语言:javascript
复制
CONVERT(varchar(max),guid,1)

熊猫给予正确的价值观。但是我需要转换python中的列,而不是sql中的列。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-30 18:59:17

它看起来像列(我在下面称为'col' )包含字节。有一个.hex()方法,您可以映射到列中的每个项,以将它们转换为十六进制字符串。

代码语言:javascript
复制
df['col'] = df['col'].map(lambda e: e.hex())

这会产生

代码语言:javascript
复制
80bc10604ba895d811e54bf9e7d78c71

似乎您想要的具体输出是具有"0x“前缀,并为9以上的数字设置大写字母,这可以通过在十六进制字符串上调用.upper()并在'0x‘前面加上’0x‘来实现。

代码语言:javascript
复制
df['col'] = df['col'].map(lambda e: '0x' + e.hex().upper())

这会产生

代码语言:javascript
复制
0x80BC10604BA895D811E54BF9E7D78C71
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74628652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档