我有一个数据框如下:
PT CA DE AP
0 1 2 [3,4,5,6]
1 4 6 [7,8,9]
当我保存此数据帧并再次读取时,“AP”列存储为字符串:
PT CA DE AP
0 1 2 '(3,4,5,6)'
1 4 6 '(7,8,9)'
当我尝试通过以下命令将其更改为整数时,出现错误:
df.AP = df.apply(lambda r: [int(r.AP[j]) for j in range(len(r.AP))], axis = 1)
错误:
("invalid literal for int() with base 10: '('", 'occurred at index 0')
请告诉我如何解决这个问题?
答案 0 :(得分:1)
您的AP列是以字符串形式引用的元组,因此无法直接转换为列表。试试这个:
ap = r.AP.replace('(', '').replace(')', '').split(',')
df.AP = df.apply(lambda r: [int(ap[j]) for j in range(len(ap)], axis = 1)