簡體   English   中英

如何在多個 pandas 列中將十六進制轉換為整數

[英]How to convert hex to int in multiple pandas columns

我正在嘗試將具有十六進制值的 pandas 表轉換為十進制。 我目前正在使用以下內容一次做一列:

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)

無論如何要在一個 go 中完成這一切? 如同:

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

所以這里有一個示例 dataframe:

>>> 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM