假设下面的dataframe具有'object‘类型的列"num“
num
0 0x11
1 0x3
2 0x05
3 0x4
4 0x1a
5 0x1d
6 0x82"print(df.dtypes)“的输出如下:
输出:
num object如何将此对象类型列转换为十六进制?
预期输出:输出应与上面提到的'df‘相同。列'num‘的类型应更改为十六进制。
我尝试了以下步骤,但不起作用:
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']]发布于 2021-03-18 13:32:04
使用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发布于 2021-03-18 13:22:00
您可以使用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发布于 2021-03-18 13:51:47
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 130https://stackoverflow.com/questions/66685179
复制相似问题