将字符串列表转换为熊猫中的 int 列表

读取 CSV 文件后,我有一列包含一串逗号分隔的十六进制值。例如“0x00000034,0x0000008a,0x00000145”。我想将此列转换为整数列表。我可以使用以下代码拆分并转换为整数列表:


for index, row in df.iterrows():

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

然后我可以将其添加为新列。


想知道最优雅的代码,它可以用最少的行数完成相同的任务。


牧羊人nacy
浏览 250回答 2
2回答

函数式编程

使用嵌套列表理解:df = pd.DataFrame({'rnti':['0x00000034,0x0000008a,0x00000145','0x00000034,0x0000008a']})print (df)                               rnti0  0x00000034,0x0000008a,0x000001451             0x00000034,0x0000008arnti_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             new0  0x00000034,0x0000008a,0x00000145  [52, 138, 325]1             0x00000034,0x0000008a       [52, 138]

慕姐4208626

使用 apply前任:import pandas as pddf = 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python