如何在多个 pandas 列中将十六进制转换为整数
How to convert hex to int in multiple pandas columns
我正在尝试将具有十六进制值的 pandas table 转换为十进制。我目前正在使用以下内容一次完成这一专栏:
df["a"] = df["a"].apply(int,base=16)
df["b"] = df["b"].apply(int,base=16)
df["c"] = df["c"].apply(int,base=16)
df["d"] = df["d"].apply(int,base=16)
要不要一次性搞定这一切?类似于:
df[['a','b','c','d']] = df[['a','b','c','d']].apply(int,base=16,axis=1)
我试过:
df[['a','b','c','d']] = df[['a','b','c','d']].apply(lambda x: int(x,base=16),axis=1)
但这并不奏效。
示例数据:
A B C
0 0x26 0x526aada8ffd9e0000 0x15f90
1 0x26 0x0 0x222e0
2 0x25 0x0 0x222e0
所以这是一个示例数据框:
>>> df
A B C
0 0x26 0x526aada8ffd9e0000 0x15f90
1 0x26 0x0 0x222e0
2 0x25 0x0 0x222e0
现在,您只需要 applymap
:
>>> hex_to_int = lambda x: int(x, 16)
>>> df[['A', 'B', 'C']] = df[['A', 'B', 'C']].applymap(hex_to_int)
结果如预期:
>>> df
A B C
0 38 95020000000000000000 90000
1 38 0 140000
2 37 0 140000
我正在尝试将具有十六进制值的 pandas table 转换为十进制。我目前正在使用以下内容一次完成这一专栏:
df["a"] = df["a"].apply(int,base=16)
df["b"] = df["b"].apply(int,base=16)
df["c"] = df["c"].apply(int,base=16)
df["d"] = df["d"].apply(int,base=16)
要不要一次性搞定这一切?类似于:
df[['a','b','c','d']] = df[['a','b','c','d']].apply(int,base=16,axis=1)
我试过:
df[['a','b','c','d']] = df[['a','b','c','d']].apply(lambda x: int(x,base=16),axis=1)
但这并不奏效。
示例数据:
A B C
0 0x26 0x526aada8ffd9e0000 0x15f90
1 0x26 0x0 0x222e0
2 0x25 0x0 0x222e0
所以这是一个示例数据框:
>>> df
A B C
0 0x26 0x526aada8ffd9e0000 0x15f90
1 0x26 0x0 0x222e0
2 0x25 0x0 0x222e0
现在,您只需要 applymap
:
>>> hex_to_int = lambda x: int(x, 16)
>>> df[['A', 'B', 'C']] = df[['A', 'B', 'C']].applymap(hex_to_int)
结果如预期:
>>> df
A B C
0 38 95020000000000000000 90000
1 38 0 140000
2 37 0 140000