Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python为十六进制字符串,转换为十进制_Python_Pandas_Substring - Fatal编程技术网

Python为十六进制字符串,转换为十进制

Python为十六进制字符串,转换为十进制,python,pandas,substring,Python,Pandas,Substring,我有一个数据帧。B列包含4个字符的十六进制值: dict = {'A': ['foo', 'bar', 'baz'], 'B': ['1346', '0f46', '5a46']} df = pd.DataFrame(dict) 我只对B列中十六进制的前两个字符感兴趣。 我想用十六进制中的前两个字符替换B列,然后将它们转换为十进制 因此,最终结果应该是一个如下所示的数据帧: A B foo 19 bar 15 baz 90 我甚至不知道如何将前两个字符重新设置。这似乎应该起作用,

我有一个数据帧。B列包含4个字符的十六进制值:

dict = {'A': ['foo', 'bar', 'baz'], 'B': ['1346', '0f46', '5a46']}
df = pd.DataFrame(dict)
我只对B列中十六进制的前两个字符感兴趣。 我想用十六进制中的前两个字符替换B列,然后将它们转换为十进制

因此,最终结果应该是一个如下所示的数据帧:

A    B
foo  19
bar  15
baz  90
我甚至不知道如何将前两个字符重新设置。这似乎应该起作用,但它没有:

df.B.str[:2]

非常感谢您的帮助。

您可以使用
str[:2]
对列进行切片,然后调用并使用lambda将十六进制转换为十进制:

In [255]:    
df['B'] = df['B'].str[:2].apply(lambda x: int(x,16))
df

Out[255]:
     A   B
0  foo  19
1  bar  15
2  baz  90

这只是风格上的不同,但您也可以将关键字参数
base
直接传递给

df['B'] = df['B'].str[:2].apply(int, base=16)