读取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]

关于python - 在 Pandas 中将字符串列表转换为int列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52855482/

10-12 23:33