首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ho可将对象类型的列转换为HexaDecimal

Ho可将对象类型的列转换为HexaDecimal
EN

Stack Overflow用户
提问于 2021-03-18 13:16:25
回答 3查看 45关注 0票数 3

假设下面的dataframe具有'object‘类型的列"num“

代码语言:javascript
复制
   num
0   0x11
1   0x3
2   0x05
3   0x4
4   0x1a
5   0x1d
6   0x82

"print(df.dtypes)“的输出如下:

输出:

代码语言:javascript
复制
 num       object

如何将此对象类型列转换为十六进制?

预期输出:输出应与上面提到的'df‘相同。列'num‘的类型应更改为十六进制。

我尝试了以下步骤,但不起作用:

代码语言:javascript
复制
df['num'] = [str(i) for i in df['num']]
df['num'] = [int(i,16) for i in df['num']]
df['num'] = [hex(i) for i in df['num']]
EN

回答 3

Stack Overflow用户

发布于 2021-03-18 13:32:04

使用df.apply

代码语言:javascript
复制
In [391]: df['num'] = df['num'].apply(int, base=0)

In [392]: df
Out[392]: 
   num
0   17
1    3
2    5
3    4
4   26
5   29
6  130
票数 2
EN

Stack Overflow用户

发布于 2021-03-18 13:22:00

您可以使用apply

代码语言:javascript
复制
df['num'] = df['num'].apply(lambda x: int(x, 16))

df:

代码语言:javascript
复制
    num
0   17
1   3
2   5
3   4
4   26
5   29
6   130
票数 1
EN

Stack Overflow用户

发布于 2021-03-18 13:51:47

literal_eval

代码语言:javascript
复制
from ast import literal_eval

df['num'] = df.num.map(literal_eval)

df

   num
0   17
1    3
2    5
3    4
4   26
5   29
6  130
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66685179

复制
相关文章

相似问题

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