为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

牧羊人nacy 2021-07-16 19:02:25
读取 CSV 文件后,我有一列包含一串逗号分隔的十六进制值。例如“0x00000034,0x0000008a,0x00000145”。我想将此列转换为整数列表。我可以使用以下代码拆分并转换为整数列表:for index, row in df.iterrows():    rnti_list = [int(idx, 16) for idx in row['rnti'].split(",")]然后我可以将其添加为新列。想知道最优雅的代码,它可以用最少的行数完成相同的任务。
查看完整描述

2 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

使用嵌套列表理解:


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]


查看完整回答
反对 回复 2021-07-21
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

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


查看完整回答
反对 回复 2021-07-21
  • 2 回答
  • 0 关注
  • 249 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号