如何将df的多个列从十六进制转换为十进制

2024-09-27 23:16:51 发布

您现在位置:Python中文网/ 问答频道 /正文

df中有多个列,其中只有选定的列必须从十六进制转换为十进制

选定的列名存储在列表a=[“类型2”、“类型4”]

{'Type 1': {0: 1, 1: 3, 2: 5, 3: 7, 4: 9, 5: 11, 6: 13, 7: 15, 8: 17},
 'Type 2': {0: 'AA',
  1: 'BB',
  2: 'CC',
  3: '55',
  4: '88',
  5: '96',
  6: 'FF',
  7: 'FFFFFF',
  8: 'FEEE'},
 'Type 3': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0},
 'Type 4': {0: '23',
  1: 'fefe',
  2: 'abcd',
  3: 'dddd',
  4: 'dad',
  5: 'cfe',
  6: 'cf42',
  7: '321',
  8: '0'},
 'Type 5': {0: -120,
  1: -120,
  2: -120,
  3: -120,
  4: -120,
  5: -120,
  6: -120,
  7: -120,
  8: -120}}

Tags: 类型df列表typeaaccffabcd
2条回答

比如说,你有十六进制的字符串“AA”

您可以将十六进制转换为十进制,如下所示:

str(int("AA", 16))

类似地,对于具有十六进制值的数据帧列,可以使用lambda函数

df['Type2'] = df['Type2'].apply(lambda x: str(int(str(x), 16)))

假设df是导入的数据帧的名称

您可以使用^{}按元素强制转换:

>>> df[["Type 2", "Type 4"]].applymap(lambda n: int(n, 16))
     Type 2  Type 4
0       170      35
1       187   65278
2       204   43981
3        85   56797
4       136    3501
5       150    3326
6       255   53058
7  16777215     801
8     65262       0

相关问题 更多 >

    热门问题