如何将对象类型的列转换为 HexaDecimal
Posted
技术标签:
【中文标题】如何将对象类型的列转换为 HexaDecimal【英文标题】:Ho to convert a column of object type to HexaDecimal 【发布时间】:2021-06-15 12:07:01 【问题描述】:假设下面的数据框有“对象”类型的列“num”
num
0 0x11
1 0x3
2 0x05
3 0x4
4 0x1a
5 0x1d
6 0x82
“print(df.dtypes)”的输出为:
输出:
num object
如何将此对象类型列转换为十六进制?
预期输出:输出应该与上面提到的'df'相同。 'num' 列的类型应更改为 HEX。
我尝试了以下步骤但不起作用:
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']]
【问题讨论】:
你能分享你的预期输出吗? 期望“num”列类型应更改为十六进制。其他一切都应该是一样的 列类型为十六进制??这些都是可用的列类型***.com/a/29246498/6660373我从未见过十六进制类型的列。 【参考方案1】:literal_eval
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
【讨论】:
我喜欢这个,因为它使用地图 :)【参考方案2】:使用df.apply
:
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
【讨论】:
我喜欢这个。 我不知道我们也可以这样定义 +1【参考方案3】:你可以使用apply
:
df['num'] = df['num'].apply(lambda x: int(x, 16))
df:
num
0 17
1 3
2 5
3 4
4 26
5 29
6 130
【讨论】:
以上是关于如何将对象类型的列转换为 HexaDecimal的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 405.将Number转换为Hexadecimal.cpp
c_cpp 405.将Number转换为Hexadecimal.cpp
c_cpp 405.将Number转换为Hexadecimal.cpp
c_cpp 405.将Number转换为Hexadecimal.cpp