簡體   English   中英

在熊貓中將字符串列表轉換為int列表

[英]Converting a list of strings to list of int in pandas

讀取CSV文件后,我有一列包含一串用逗號分隔的十六進制值。 例如,“ 0x00000034,0x0000008a,0x00000145”。 我想將此列轉換為整數列表。 我可以使用以下代碼拆分並轉換為整數列表:

for index, row in df.iterrows():
    rnti_list = [int(idx, 16) for idx in row['rnti'].split(",")]

然后,我可以將其添加為新列。

想知道最優雅的代碼,用最少的行數就能完成相同的工作。

謝謝。

使用嵌套列表理解:

df = pd.DataFrame({'rnti':['0x00000034,0x0000008a,0x00000145','0x00000034,0x0000008a']})
print (df)
                               rnti
0  0x00000034,0x0000008a,0x00000145
1             0x00000034,0x0000008a

rnti_list = [[int(idx, 16) for idx in x.split(",")] for x in df['rnti']]
print (rnti_list)
[[52, 138, 325], [52, 138]]

df['new'] = [[int(idx, 16) for idx in x.split(",")] for x in df['rnti']]
print (df)
                               rnti             new
0  0x00000034,0x0000008a,0x00000145  [52, 138, 325]
1             0x00000034,0x0000008a       [52, 138]

使用apply

例如:

import pandas as pd

df = pd.DataFrame({"rnti": ["0x00000034,0x0000008a,0x00000145"]})    
print( df["rnti"].str.split(",").apply(lambda x: [int(i, 16) for i in x]) )

輸出:

0    [52, 138, 325]
Name: rnti, dtype: object

暫無
暫無

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

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