首页 > 解决方案 > 如何将df的多列从十六进制转换为十进制

问题描述

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

选定的列名存储在列表中 A = ["Type 2", "Type 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}}

标签: pythonpandasdataframe

解决方案


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

您可以像这样将十六进制转换为十进制:

str(int("AA", 16))

同样,对于具有十六进制值的数据框列,您可以使用 lambda 函数。

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

假设, df 是导入数据框的名称。


推荐阅读